Перезапись URL: перенаправить одну страницу на другую - PullRequest
0 голосов
/ 22 ноября 2011

Я хочу создать правило для перенаправления запроса на страницу (которая не существует) на другую

Пример:

http://www.example.com/en/page.asp?id=2&...

на

http://www.example.com/en-US/newpage.asp?id=2&...

Я использую это правило:

<rule name="Redirect" stopProcessing="true">
    <match url="page\.asp\?(.+)$" />
    <action type="Rewrite" url="newpage.asp?{R:1}" />
</rule>

Но это не работает ... Я получил ошибку 404 ...

В чем моя ошибка?

Спасибо

1 Ответ

3 голосов
/ 22 ноября 2011
  1. Действие перезаписи URL Rewrite предназначено только для перезаписи URL страницы, который отображается в браузере, но он ожидает, что исходная страница существуют на сервере. Для вашего случая вам нужно действие Redirect.
  2. Регулярное выражение необходимо изменить, чтобы оно отражало "en-US" в конечном URL.

Попробуйте вместо этого код:

<rule name="Redirect" stopProcessing="true">
    <match url="en/page\.asp\?(.+)$" />
    <action type="Redirect" url="en-US/newpage.asp?{R:1}" redirectType="Permanent"/>
</rule>

Постоянное перенаправление помогает сделать ваш сайт SEO (оптимизированным для поисковых систем), не позволяя поисковым роботам индексировать старый URL-адрес (и, следовательно, не разбивать рейтинг страниц между двумя URL-адресами).

...