|
|
|
|
|
我已經(jīng)在我的 IIS 上配置了一個重寫規(guī)則,但它似乎永遠(yuǎn)不會生效。我已經(jīng)為此工作了幾個小時,沒有任何運氣。這是我在應(yīng)用程序的web 配置中的規(guī)則:
<rewrite>
<rules>
<rule name="Rewrite frienly url to snapshot" stopProcessing="true">
<match url="/(localhost:2934)\/trabajos\/([\w-]+)\/([\w-|\-]+)" />
<action type="Rewrite" url="\/snapshots/{R:2}.html" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
我的網(wǎng)址如下:
http://localhost:2934/trabajos/3ba2a9e4/some-cool-title
我想重寫為:
http://localhost:2934/snapshots/3ba2a9e4.html
這是我在 IIS 中測試模式得到的結(jié)果:
從這看來似乎沒問題。
但是在瀏覽器中測試 URL 時,我覺得該規(guī)則永遠(yuǎn)不會被觸發(fā),事實上,我已經(jīng)配置為跟蹤失敗的請求,如本教程,并且在日志文件夾中沒有任何錯誤或文件。例如:
C:\inetpub\logs\FailedReqLogFiles
我收到了 404 錯誤,它的記錄如下:
2022-03-28 18:56:11 ::1 GET /trabajos/3ba2a9e4/some-cool-tile - 2934 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/42.0.2311.60+Safari/537.36 - 404 0 2 4
2022-03-28 18:56:15 ::1 GET /trabajos/3ba2a9e4/some-cool-title - 2934 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/42.0.2311.60+Safari/537.36 - 404 0 2 2
分析及解答
有網(wǎng)友遇到同樣的問題,在 IIS 中設(shè)置 URL 重寫規(guī)則后出現(xiàn) 404 錯誤。最后通過單擊以下項目打開反向代理,問題得以解決。
不少網(wǎng)友對此解決方法給予肯定,說自己也是這樣解決了問題。
筆者按:
經(jīng)過筆者測試,安裝 Application Request Routing (應(yīng)用程序請求路由) (ARR),并且啟動它,不用再在IIS做任何設(shè)置,問題就得以解決,當(dāng)然,你要確保你的重寫規(guī)則沒有寫錯。參考文章: