SateClub

SateClub
Рейтинг
81
Регистрация
25.05.2010

Всем спасибо ребят!

Заработало.

Для тех кто будет решать такую же проблему, прикладываю финальную версию конфига, которая заработала.

Сайт написан на python, фреймворк flask.

В продакшене через uwsgi + nginx


server {
listen 80;
server_name "~^www\.(?<domain>.+)";
return 301 http://$domain$request_uri;
}

server {
listen 80;
server_name "~(?:^|\.)site\.ru$";

location ~* \.(eot|ttf|woff|woff2)$ {
add_header Access-Control-Allow-Origin *;
}

location / {
include uwsgi_params;
uwsgi_pass unix:///home/user/site/site.sock;
}

location /static {
alias /home/user/site/static;
}
}
baas:
Странно а что за ошибка выходит?
if ($host ~* www\.(.*)) {

set $host_www $1;
rewrite ^(.*)$ http://$host_www$1 permanent;
}

А так?
Либо такой попробовать.

Если не получается, то показывайте полный конфиг nginx.conf и виртал хоста куда добавляете редирект.

Оба способа не сработали.

Появляется ошибка 404, потому что роутер не может разобрать путь с www по хосту и генерирую 404 ошибку. Движок flask, сайт самописный.

Полный листинг конфига:


server {
listen 80;
server_name www.site.ru;
return 301 http://site.ru$request_uri;
}

server {
listen 80;
server_name "~^www\.(.*)$";
rewrite ^ http://$host$request_uri permanent;
}

server {
listen 80;
server_name site.ru *.site.ru;

location ~* \.(eot|ttf|woff|woff2)$ {
add_header Access-Control-Allow-Origin *;
}

location / {
include uwsgi_params;
uwsgi_pass unix:///home/user/site/site.sock;
}

location /static {
alias /home/user/site/static;
}
}
Sitealert:
Не всё так быстро. Ждите, пока записи в сети обновятся. Это несколько часов.

Да, DNS обновились и теперь сайт доступен по адресу www.subdomain.site.ru теперь не срабатывает редирект. Сделал через регулярку, как предложили выше, но не работает.

baas:
Хмм, без редиректа домен www.subdomain.site.ru работает?

Точно, не работает.

Хм, тогда вопрос как прописать DNS. У меня панель mnogodomenov, там в разделе управления DNS зоной есть возможность добавить поддомен, где я собственно и добавил subdomain, но не совсем понимаю как добавить такой же поддомен но с www.

Там есть 3 поля:

https://yadi.sk/i/6h2BcwfTkoas3g - скриншот

Добавил в первое поле

www.subdomain

Ну и в поле с IP, добавил IP

но хост все равно не доступен и при попытке пинга www.subdomain.site.ru ругается на недоступность хоста

baas:
А так?
    server_name "~^www\.(.*)$";

return 301 $scheme://$1$request_uri;

К сожалению так тоже не работает. Пишет:

Не удается получить доступ к сайту

Не удалось найти IP-адрес сервера www.subdomain.site.ru.

Выполните поиск по запросу subdomain site ru в Google

ERR_NAME_NOT_RESOLVED

Всем привет, уважаемые форумчане.

Поздравляю с пятницей))

Ребят, ну помогите делом. Второй день кручу верчу, не могу составить правильно htaccess...хотя может и не правильный подход у меня.

Значит вот какое дело:

есть url вида region.site.ru/tovar1 который через htaccess редиректит на region.site.ru/script.php?tovar=tovar1.

В файле script.php естественно стоит обработчик, который дергает GETом tovar и тащит из базы всю инфу по tovar1, и собственно рендерит все это дело на страницу.

Все работает, и это замечательно, но есть одно НО. Появилась необходимость сделать мобильную версию, и тут начались проблемы.

Мобильная версия находится тут: region.site.ru/m/tovar1

на script.php есть JS код, который по ширине страницы редиректит на мобильную версию. Соответственно при заходе на region.site.ru/tovar1 с мобильного устройства, скрипт кидает человечка на region.site.ru/m/tovar1 и вот тут начинается трабла. Сейчас выдается 404 ошибка.

Как заставить htaccess при заходе по адресу region.site.ru/m/tovar1 перекинуть запрос на region.site.ru/m/script.php?tovar=tovar1

Попробовал сделать так:

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www.region.site\.ru$ [NC]

RewriteRule ^(.*)$ http://region.site.ru/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-l

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^m/(.*)$ m/script.php?tovar=$1 [L,QSA]

RewriteRule ^(.*)$ script.php?tovar=$1 [L,QSA]

ErrorDocument 404 /404.html

</IfModule>

Но увы, не получается. Меня всегда отправляет на m/script.php

Помогите пожалуйста добрым словом, а лучше делом.

Извиняюсь, если не в тот раздел написал.

Pavel_, спасибо)))

Как я не догадался сразу:

embed, iframe, object {
max-width: 50%;
height: 100%;
}

.home embed, .home iframe, .home object {
max-width: 100%;
height: 100%;
}

Да в том то и дело что во всем CSS файл этого цвета нет(

---------- Добавлено 11.09.2012 в 00:20 ----------

gtauter, хотя нет. я ошибся. Действительно, по цвету я смог найти в CSS вот что:

ins {
background: none repeat scroll 0 0 #FFFFCC;
text-decoration: none;
}

Удалив этот участок кода, все осталось так же, только блок стал серым.

Но зато я теперь понял все таки в какую сторону копать надо :)

---------- Добавлено 11.09.2012 в 00:54 ----------

К сожалению все попытки привели к неудаче... проблема не решена ((( Есть ещё идеи?

Ссылку в личку

Ссылку в личку.

Всего: 308