Есть связка nginx+apache. Нужно сделать redirect с www.domain.com на domain.com. Пробовал делать rewrite только на nginx'e - не работает. Добавил ещё и на apache - и получаю зацикливание.
Как правильно сделать редирект в моём случае?
Решено: nginx+apache redirect www.domain.com -> domain.com
Модераторы: SLEDopit, Модераторы разделов
-
skeletor
- Сообщения: 1224
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
Ну если средствами апача, то
Код: Выделить всё
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
BigBrother
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
nginx
apache
Код: Выделить всё
server {
server_name www.domain.com;
rewrite ^(.*) http://domain.com$1 permanent;
}
server {
server_name domain.com;
...
...
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}apache
Код: Выделить всё
<VirtualHost *:8080>
DocumentRoot ...
ServerName domain.com
ErrorLog ...
CustomLog ...
...
...
</VirtualHost>-
skeletor
- Сообщения: 1224
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
Вот тут и проблема - чем нужно делать редирект: apache'm или nginx'om?
-
skeletor
- Сообщения: 1224
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
SLEDopit писал(а): ↑13.09.2012 16:08Ну если средствами апача, то
Код: Выделить всё
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC] RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Вот так сработало. То есть добавил только в апач. nginx без rewrite'ов. Но есть проблема - оно добавляет лишний слеш в конец, и в итоге становиться так:
http://domain.com//menu.php
Я убрал лишний слэш в http://domain.com/$1 но ничего не изменилось. Как побороть ?
-
BigBrother
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
Тем, кто первый встречает запрос. Если apache используется для обработки php и висит на локалхосте или за внешним !Р, а nginx для статики, тогда в nginx`e.
skeletor писал(а): ↑13.09.2012 16:46Вот так сработало. То есть добавил только в апач. nginx без rewrite'ов. Но есть проблема - оно добавляет лишний слеш в конец, и в итоге становиться так:
http://domain.com//menu.php
Я убрал лишний слэш в http://domain.com/$1 но ничего не изменилось. Как побороть ?
nginx
Код: Выделить всё
#remove / from end string request_uri
if ( $query_string ~ ^(.+)\/$) {
set $args $1;
rewrite ^ http://domain.com$uri permanent;
}
if ( $request_uri ~ ^(.+)\/$) {
rewrite ^(.+)\/$ http://domain.com$1 permanent;
}-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
skeletor писал(а): ↑13.09.2012 16:46SLEDopit писал(а): ↑13.09.2012 16:08Ну если средствами апача, то
Код: Выделить всё
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC] RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Вот так сработало. То есть добавил только в апач. nginx без rewrite'ов. Но есть проблема - оно добавляет лишний слеш в конец, и в итоге становиться так:
http://domain.com//menu.php
Я убрал лишний слэш в http://domain.com/$1 но ничего не изменилось. Как побороть ?
Как проверяли?
-
skeletor
- Сообщения: 1224
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
Заходил на сайт под разными браузерами. В одних есть слеши, в других нету.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
skeletor
- Сообщения: 1224
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
С кешем была проблема, но на эту проблему наличие/отсутствие кеша не влияло.
Есть подозрения, что в коде сайта есть ошибки и поэтому так себя ведёт. Пока разбираюсь.
Есть подозрения, что в коде сайта есть ошибки и поэтому так себя ведёт. Пока разбираюсь.
-
skeletor
- Сообщения: 1224
Re: Решено: nginx+apache redirect www.domain.com -> domain.com
Всем спасибо. Предложенный вариант от BigBrother для nginx'a оказался рабочим. Проблема была в том, что конфиг сайта не инклудился nginx'ом. Поправил, всё работает.