2015-11-10 2 views
1

В настоящее время у меня есть экземпляр nginx, который используется исключительно для хранения трафика на старый URL-адрес.Относительные правила перезаписи Nginx

server { 
listen xxx.xxx.IP.IP; 
server_name blog.store.com; 
if ($http_host = "xxx.xxx.IP.IP"){return 301 $scheme://store.com;} 
if ($http_host = blog.store.com){return 301 $scheme://store.com/blog;} 
} 

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

Пример: прямо сейчас, если кто-то попадает в ссылку, которая говорит «blog.store.com/page» они берутся «store.com/blog»

Я хочу, чтобы быть в состоянии поразить «блог. store.com/page»и принять меры для 'store.com/blog/page'

Я попытался несколько примеров из

URL Rewriting Nginx

Make nginx rewrite relative

Но те и разные варианты $ 1 не работают. Я что-то упускаю?

Спасибо заранее

+0

Добро пожаловать в SO! Не стесняйтесь также вставлять код, который не работал для вас (минимальный код, который показывает проблему, см. Https://stackoverflow.com/help/mcve). Если вы не внедрили учебники правильно, люди смогут указать на проблему. – ghybs

ответ

1

Ричард большое спасибо вот мой новый код он работал.

server { 
listen xxx.xx.xx.xxx:80; 
server_name blog.store.com; 
if ($http_host = "xxx.xx.xx.xxx"){return 301 $scheme://store.com;} 
if ($http_host = blog.store.com){return 301 $scheme://store.com/blog$request_uri;} 
} 

Еще раз спасибо!

1

Попробуйте это:

server { 
    listen  xxx.xxx.IP.IP default_server; 
    return  301 $scheme://store.com; 
} 
server { 
    listen  xxx.xxx.IP.IP; 
    server_name blog.store.com; 
    return  301 $scheme://store.com/blog$request_uri; 
} 
+0

Спасибо, см. Ниже =) – monjexpress

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