Как переписать корневой URL сайта на новый уровень? - PullRequest
0 голосов
/ 17 сентября 2010

Используя urlrewiter.net, я пытаюсь 301 перенаправить любые запросы к корню сайта в новое место назначения. * 1001 например *

www.example.com следует перенаправить на www.example.com/en/

Как мне добиться этого с помощью urlrewriter.net? Я пробовал следующие правила, но ни одно из них не работает или не зацикливается.

    <redirect url="^www\.example\.com" to="/en/" />
    <redirect url="^www\.example\.com\/" to="/en/" />
    <redirect url="^www.example.com" to="/en/" />
    <redirect url="^www.example.com/" to="/en/" />
    <redirect url="/" to="/en/" />
    <redirect url="^/" to="/en/" />

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 17 сентября 2010

Если вы хотите соответствовать «www.example.com», но не «www.example.com/en» (и, таким образом, избежать бесконечной рекурсии), вам нужно добавить знак $ в конце регулярного выражения. Попробуйте использовать эти три правила:

<redirect url="^www\.example\.com$" to="www\.example\.com/en/" />
<redirect url="^example\.com$" to="www\.example\.com/en/" />
<redirect url="^www\.example\.com/$" to="www\.example\.com/en/" />

Добавление знака $ в конец означает, что выражение соответствует концу строки. Таким образом, добавив ^ в начало и $ в конец, вы можете сделать так, чтобы ваше выражение было всей строкой. Я думаю, что причиной того, что вы получили бесконечную рекурсию, были шаблоны, которые вы использовали все совпадения "www.example.com/en/" и перенаправить его себе, который перенаправляет его себе снова и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...