Asp.net
IIS URL 重寫和 Web.config
我對 IIS 一無所知,但我正在嘗試解決將所有訪問者重定向到 domain.com/page 到 domain.com/page.html 的問題
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.webServer> <rewrite> <rewriteMaps> <rewriteMap name="StaticRedirects"> <add key="/page" value="/page.html" /> </rewriteMap> </rewriteMaps> </rewrite> </system.webServer> </configuration>出現了幾個問題:
- 我什至不知道把文件放在哪裡。有一個使用者根目錄和一個htdocs目錄,我都試過了,不高興。
- 我什至不知道該帳戶是否可以重寫,我正在嘗試找出答案。
- 您現有的 web.config:您已經聲明了 rewrite map .. 但尚未創建任何使用它的規則。RewriteMap 本身完全沒有任何作用。
2)下面是你如何做到這一點(它不使用重寫映射 - 僅規則,這對於少量的重寫/重定向很好):
/page此規則將對 .進行單次精確重寫(內部重定向)/page.html。瀏覽器中的 URL 將保持不變。<system.webServer> <rewrite> <rules> <rule name="SpecificRewrite" stopProcessing="true"> <match url="^page$" /> <action type="Rewrite" url="/page.html" /> </rule> </rules> </rewrite> </system.webServer>此規則 #2 將執行與上述相同的操作,但將執行 301 重定向(永久重定向),其中 URL 將在瀏覽器中更改。
<system.webServer> <rewrite> <rules> <rule name="SpecificRedirect" stopProcessing="true"> <match url="^page$" /> <action type="Redirect" url="/page.html" /> </rule> </rules> </rewrite> </system.webServer>如果存在帶有 .html 副檔名的此類文件,規則 #3 將嘗試對任何 URL 執行此類重寫(即,
/page它將檢查是否/page.html存在,如果存在,則發生重寫):<system.webServer> <rewrite> <rules> <rule name="DynamicRewrite" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{REQUEST_FILENAME}\.html" matchType="IsFile" /> </conditions> <action type="Rewrite" url="/{R:1}.html" /> </rule> </rules> </rewrite> </system.webServer>