0

Я просто обнаружил, что мой синтаксис Nginx не был прав:Nginx 301 редиректа ошибка синтаксиса

location /news { rewrite ^(.*)$ /blog redirect;} 

Я хочу, чтобы перенаправить mysite.com/news на mysite.com/blog, но этот код был перенаправление больше страниц в блог ,

Кто-нибудь может помочь мне объяснить ошибку и рассказать мне, как правильно перенаправить?

спасибо

ответ

1

Лучше всего было бы еще использовать location. Если вы что-нибудь ниже /news не хотите перенаправлять /blog (например, нет необходимости в качестве шаблона), то следующий не то, что вы хотите, и, вероятно, является наиболее эффективным способом, чтобы создать единый псевдоним:

location = /news { 
    return 301 /blog; 
} 

в противном случае, если вы делаете, на самом деле, хочу уайлдкард:

location /news { 
    rewrite ^/news(.*) /blog$1 permanent; 
} 

PS Также обратите внимание, что redirect would cause 302 redirects; if you want 301, then the keyword is called permanent.

0

Вам не нужно размещать его внутри блока местоположения. Достаточно одного правила перезаписи.

rewrite ^/news/?$ /blog redirect;

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