Имам проблем, опитвайки се да се пренапише, работещ в IIS7 web.config.
Имам нужда от URL адреси като / err / interaccess да бъдат пренаписани на /err/404new.asp (не е пренасочване, тъй като не искам да излагам файла.
Опитах следното и тя работи само ако използвам / interaccess, но не / err / interaccess
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^tinteraccess$" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
Имаш ли представа защо? Опитах се да намеря документация по този въпрос и не можах да намеря нищо по отношение на тази употреба.
Отговори:
1 за отговор № 1Магията е в регулярния израз на <match>
маркер. За да съответства на точния Ви URL адрес, който ще използвате:
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^err/interaccess$" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
Ако бихте искали да съвпадате с всичко /err/
бихте използвали:
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^err/" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
Това е много добре документирано, например: http://www.iis.net/downloads/microsoft/url-rewrite (виж Свързано обучение)