2016-02-24 3 views
1

У меня есть несколько старых доменов, которые я переадресация на новый домен (консолидирующий), в любом случае старый и новые, имели предсказуемую структуру для всего, так что я сделал это ...Nginx перенаправлять на новый домен

server { 
     listen 80; 
     server_name .oldomain.com; 
     return 301 http://newdomain.com/foo$request_uri?; 
} 

, и это касается всех моих перенаправлений, за исключением случаев, когда кто-то вводит голый адрес. В этом случае они получают 404, потому что он перенаправляет/foo /, и там ничего нет.

Есть ли способ позаботиться об этом?

ответ

0

Поместите случай по умолчанию в блок location /, тогда вы можете явно указать случаи кромок. Например:

server { 
    listen 80; 
    server_name .oldomain.com; 

    location/{ 
     return 301 http://newdomain.com/foo$request_uri; 
    } 
    location =/{ 
     return 301 http://newdomain.com/my/default/path.html; 
    } 
} 

См this document для деталей location синтаксиса и порядка обработки.

+0

Я получаю то, что вы говорите, но я не понимаю значения знака = и как это указывает на другое место, чем просто/ – deltaskelta

+0

@deltaskelta добавил ссылку на документацию, которая должна помочь. –

Смежные вопросы