Mám problém pokúsiť sa o prepísanie práce v IIS7 web.config.
Potrebujem adresy URL, ako je / err / interaccess, aby boli prepísané na /err/404new.asp (nie presmerovanie, pretože nechcem vystaviť súbor.
Snažil som sa nasledujúce a funguje to len vtedy, ak používam / interaccess, ale nie / err / interaccess
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^tinteraccess$" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
Akákoľvek myšlienka o prečo? Snažil som sa nájsť dokumentáciu o tomto a nemohol nájsť nič, čo sa týka tohto použitia.
odpovede:
1 pre odpoveď č. 1Mágia je v regulárnom vyjadrení <match>
tag. Ak chcete, aby sa zhodovala s vašou presnou adresou URL, použite:
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^err/interaccess$" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
Ak by ste chceli zodpovedať všetkému /err/
používate:
<rule name="Rewrite Interaccess Error" enabled="true" stopProcessing="true">
<match url="^err/" />
<action type="Rewrite" url="/err/404new.asp" />
</rule>
To všetko je veľmi dobre zdokumentované, napr .: http://www.iis.net/downloads/microsoft/url-rewrite (pozri Súvisiace vzdelávanie)