Переписать/перенаправить URL с помощью IIRF

IIS 6 с использованием IIRF. Я не уверен, будет ли это переписыванием или перенаправлением. У нас есть новый сайт, и нам нужно 301 перенаправить старую страницу на новую и сохранить только значение строки запроса. Мне нужно следующее правило перезаписи. С этим материалом довольно сложно работать, и я не смог найти примеров, соответствующих тому, что я пытаюсь сделать.

Мне нужно это переписать на основе определенного URL-адреса:

subdomain.site.org/dir1/dir2/dir3/page.cfm?pc=1092

Когда эта страница попадает, мне нужно, чтобы она была переписана следующим образом:

subdomain2.site.org/detail.aspx?id=1092

Обратите внимание, что он не извлекает всю строку запроса, а только ее значение.


person jacton    schedule 02.05.2013    source источник


Ответы (1)


Поскольку вы хотите перенаправить с 301 на новый (постоянный) URL-адрес, вы должны использовать RedirectRule.

Предполагая, что у вас есть один веб-сайт, настроенный для ответа на subdomain.site.org и subdomain2.site.org, вам понадобится RewriteCond, чтобы перенаправлять запросы только со старого субдомена.

RewriteCond %{SERVER_NAME} ^subdomain\.site\.org$
RedirectRule ^/dir1/dir2/dir3/page\.cfm\?pc=(\d+)$ http://subdomain2.site.org/details.aspx?id=$1 [I,R=301]

Наконец, RedirectRule выполняется только в том случае, если старый шаблон URL-адреса соответствует, и заменяет значение строки запроса pc на новый URL-адрес.

person marapet    schedule 02.05.2013
comment
Спасибо, я очень ценю вашу помощь в этом. - person jacton; 06.05.2013