Мне нужно перенаправить каждый запрос http://test.com на http://www.test.com . Как это может быть сделано.
В блоке сервера я попытался добавить
rewrite ^/(.*) http://www.test.com/$1 permanent;
но в браузере это говорит
The page isn't redirecting properly
Firefox has detected that the server is redirecting the request for
this address in a way that will never complete.
мой блок сервера выглядит
server {
listen 80;
server_name test.com;
client_max_body_size 10M;
client_body_buffer_size 128k;
root /home/test/test/public;
passenger_enabled on;
rails_env production;
#rewrite ^/(.*) http://www.test.com/$1 permanent;
#rewrite ^(.*)$ $scheme://www.test.com$1;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
redirect
nginx
url-rewriting
Амаль Кумар С
источник
источник
Ответы:
Лучший способ сделать то, что вы хотите, это добавить еще один блок сервера:
И отредактируйте свою переменную server_name блока главного сервера следующим образом:
Важно : Новый
server
блок - это правильный способ сделать это,if
это зло . Вы должны использовать местоположения и серверы, а не,if
если это возможно.Rewrite
иногда тоже зло , поэтому заменил его наreturn
.источник
return 301 http://wwww.test.com$request_uri;
вместо перезаписи.return
вместоrewrite
. Смотрите документыredirect
тоmain server
блок илиmain server
блок тогдаredirect
? Поскольку у меня та же проблема, stackoverflow.com/questions/35451929/…301
перенаправления против302
. Вы можете застрять в кэшированном постоянном перенаправлении, что очень затрудняет изменение настроек для клиентов, которые уже получили доступ к URL-адресу. (Я знаю, что ОП попросил301
, но будьте уверены, что это действительно то, что вы хотите.)Аналогично другому ответу, но измените http в схеме перезаписи на $ следующим образом:
И отредактируйте свою переменную server_name блока главного сервера следующим образом:
Я должен был сделать это, чтобы перенаправить www.test.com на test.com.
источник
Сначала убедитесь, что вы установили Nginx с модулем перезаписи HTTP. Чтобы установить это нам нужно иметь pcre-библиотеку
Как установить библиотеку pcre
Если вышеупомянутое сделано или если у вас уже есть, просто добавьте приведенный ниже код в свой блок сервера nginx
Для удаления www из каждого запроса вы можете использовать
так ваш блок сервера будет выглядеть
источник
Это самый популярный сайт в Google по запросу "nginx redirect". Если вы попали сюда, просто хотите перенаправить одно местоположение:
источник