301 перенаправление с не-www на www для nginx

467
Frank Martin

Я использую следующий код на своем сайте для постоянного перенаправления 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?

0
Я могу ошибаться, но я думаю, что вам нужен `/` в вашем фильтре регулярных выражений. Возможно, попробуйте вместо этого: `RewriteRule ^ https: //www.%1% [R = 301, L, NE]` Другое решение можно найти в [этом вопросе] (https://stackoverflow.com/questions / 7947030 / nginx-no-www-to-www-and-www-to-no-www), поскольку я не люблю Nginx. Dooley_labs 6 лет назад 0

1 ответ на вопрос

1
Tim

Обычно это делается с другим блоком сервера, без регулярных выражений.

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.

Похожие вопросы