Как переписать mysite.com/page/ на mysite.com/page/index.html с помощью NGINX? - PullRequest
0 голосов
/ 26 января 2012

Как я могу 301 переписать mysite.com/page/ на mysite.com/page/index.html с помощью nginx?

В Apache у меня было:

RewriteRule page/ http://mysite.com/page/index.html [R=301,L]

Спасибо за помощь,

hydn

Ответы [ 2 ]

1 голос
/ 29 января 2012

Я вижу из вашего комментария к Сергею, что каталог / page / и /page/index.html на самом деле не существуют и переписаны в другом месте.Поэтому неудивительно, что Nginx выдает 404 не найденных.

Что именно должно быть обслужено, если посетитель запрашивает «/page/index.html»?IE, для чего это нужно переписать?

Если это index.php? Q = / page / index.html, то ваша конфигурация должна быть:

server {
    # index directive should be in server or http block
    # So no need to repeat in every location block
    # unless specifically overriding it
    index index.php index.html;
    location / {
        rewrite ^/page(/?)$ /page/index.html break;
        try_files $uri $uri/ /index.php?q=$uri;
    }
}

Вы также можете использовать

server {
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?q=$request_uri;
    }
}

Но могут быть некоторые проблемы с этим.Все зависит от детали вашей заявки.

1 голос
/ 26 января 2012

Попробуйте следующие настройки:

location / {
    rewrite /page/ http://mysite.com/page/index.html permanent;
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...