2016-10-28 1 views
0

У меня есть установка nginx, которая работает как прокси-сервер для сайта. Пожалуйста, смотрите конфиг нижеNginx - URL с www dont redirect

proxy_cache_path /tmp/cache levels=1:2 keys_zone=STATIC:10m inactive=10m max_size=1g; 
 
server { 
 
     listen 80; 
 
     server_name domain.com www.domain.com; 
 
     client_max_body_size 20M; 
 
     location/{ 
 
       proxy_set_header Host $host; 
 
       proxy_set_header X-Real-IP $remote_addr; 
 
       proxy_pass http://domainserver.com:8000; 
 
       proxy_connect_timeout  600; 
 
       proxy_send_timeout   600; 
 
       proxy_read_timeout   600; 
 
       send_timeout    600; 
 
     } 
 
     location = /xmlrpc.php { 
 
       deny all; 
 
       access_log off; 
 
       log_not_found off; 
 
     } 
 
     location = /home-garden { 
 
       rewrite 301 http://domain.com/category/forsale/home-and-garden/; 
 
     } 
 

 
}

То, что я хочу сделать, это

URL http://www.domain.com/home-garden должен перенаправлять http://domain.com/new-home-garden

Кроме того, http://domain.com/home-garden должен перенаправлять http://domain.com/new-home-garden

Сообщите мне, если я дал достаточно информации, и если кто-то может мне помочь

+0

Что такое 'переписать 301 HTTP: //domain.com/category/forsale/home-and-garden/;'? Вы имеете в виду 'return'? –

ответ

1

Вам нужно будет добавить новый серверный блок, чтобы поймать www.domain.com, а затем перенаправить на domain.com. Это первый серверный блок ниже. Обратите внимание, что это перенаправит все запросов от www.domain.com до domain.com. Если это не намерение, его можно настроить.

Затем вам необходимо удалить www.domain.com из директивы server_name во втором блоке сервера.

Для перенаправления определите новый блок местоположения, как показано ниже.

proxy_cache_path /tmp/cache levels=1:2 keys_zone=STATIC:10m inactive=10m max_size=1g; 
 

 
server { 
 
     listen 80; 
 
     server_name www.domain.com; 
 

 
     return 301 http://domain.com$request_uri; 
 
} 
 

 
server { 
 
     listen 80; 
 
     server_name domain.com; 
 
     client_max_body_size 20M; 
 
     location/{ 
 
       proxy_set_header Host $host; 
 
       proxy_set_header X-Real-IP $remote_addr; 
 
       proxy_pass http://domainserver.com:8000; 
 
       proxy_connect_timeout  600; 
 
       proxy_send_timeout   600; 
 
       proxy_read_timeout   600; 
 
       send_timeout    600; 
 
     } 
 
     location = /xmlrpc.php { 
 
       deny all; 
 
       access_log off; 
 
       log_not_found off; 
 
     } 
 
     location ^~ /home-garden { 
 
       rewrite 301 http://domain.com/new-home-garden/; 
 
     } 
 

 
}

+0

Это сработало ..... но место^~/home-garden { rewrite 301 http://domain.com/new-home-garden/; } didnt работал после того, как он был перенаправлен с сайта www.domain.com, поэтому я использовал прокси-сервер на данный момент ... но я не знаю, правильно ли он соответствует – Saurabh

+0

... Проксирование - это не то же самое, что перенаправление. Когда вы говорите, что перенаправление не работало после того, как оно было перенаправлено с сайта www.domain.com, означает ли это, что 'domain.com/home-garden' правильно перенаправил? –

+0

Я имею в виду, что он перенаправлен с сайта www.domain.com на домен.com ... но не пошел на http://domain.com/new-home-garden – Saurabh