301 перенаправление с не-www на www для nginx
Я использую следующий код на своем сайте для постоянного перенаправления 301 с домена без www на домен www. Мой веб-сервер nginx.
rewrite ^/([^&]*)&(.*)$ http://www.example.com/$1?$2 permanent;
Это работает нормально только для одного случая, когда пользователь вводит http://example.com
который перенаправлен на http://www.example.com
Но когда пользователь печатает, например, для http://example.com/portal.php
тогда он не перенаправляет на http://www.example.com/portal.php
Как я могу убедиться, что все мои страницы перенаправляются на домен www?
1 ответ
Решение
Обычно это делается с другим блоком сервера, без регулярных выражений.
server {
listen 80;
server_name example.com;
return 301 http://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
# Location blocks etc
}
Вы можете добавить дополнительные блоки сервера, если вы хотите перенаправить https.