nginx перенаправить на www.domain
Я хочу перенаправить сайт ВСЕГДА на www.site.com. Однако я не уверен, как заставить WWW всегда появляться впереди, если кто-то введет домен без www.
РЕДАКТИРОВАТЬ:
server {
listen 80;
server_name site.com;
rewrite ^(.*) https://www.site.com$1 permanent;
}
server {
listen 80;
server_name www.site.com;
#rewrite ^(.*) https://www.site.com$1 permanent;
root /home/site/public_html;
listen 443 ssl;
Если я наберу в site.com, он идет в https://www.site.com
= УСПЕХ
Если я введу site.com/index.php, он перейдет к http://www.site.com
= НЕТ SSL
Идеи?
2 ответа
Решение
Вы делаете это трудным путем. Вот простой способ.
server {
listen 80;
server_name example.com;
rewrite ^(.*) http://www.example.com$1 permanent;
}
server {
listen 80;
server_name www.example.com;
#The rest of your configuration goes here#
}
Лучше использовать return
вместо rewrite
потому что это быстрее
server {
listen 80;
server_name example.com;
return 301 http://www.example.com$request_uri;
server {
listen 80;
server_name www.example.com;
[...]
Таким образом, мы также отправляем клиенту правильный код состояния, чтобы он запрашивал нужный домен в следующем запросе.