|
|
|
|
|
我已經(jīng)在我的 IIS 上配置了一個(gè)重寫規(guī)則,但它似乎永遠(yuǎn)不會(huì)生效。我已經(jīng)為此工作了幾個(gè)小時(shí),沒(méi)有任何運(yùn)氣。這是我在應(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 中測(cè)試模式得到的結(jié)果:
從這看來(lái)似乎沒(méi)問(wèn)題。
但是在瀏覽器中測(cè)試 URL 時(shí),我覺(jué)得該規(guī)則永遠(yuǎn)不會(huì)被觸發(fā),事實(shí)上,我已經(jīng)配置為跟蹤失敗的請(qǐng)求,如本教程,并且在日志文件夾中沒(méi)有任何錯(cuò)誤或文件。例如:
C:\inetpub\logs\FailedReqLogFiles
我收到了 404 錯(cuò)誤,它的記錄如下:
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)友遇到同樣的問(wèn)題,在 IIS 中設(shè)置 URL 重寫規(guī)則后出現(xiàn) 404 錯(cuò)誤。最后通過(guò)單擊以下項(xiàng)目打開(kāi)反向代理,問(wèn)題得以解決。
不少網(wǎng)友對(duì)此解決方法給予肯定,說(shuō)自己也是這樣解決了問(wèn)題。
筆者按:
經(jīng)過(guò)筆者測(cè)試,安裝 Application Request Routing (應(yīng)用程序請(qǐng)求路由) (ARR),并且啟動(dòng)它,不用再在IIS做任何設(shè)置,問(wèn)題就得以解決,當(dāng)然,你要確保你的重寫規(guī)則沒(méi)有寫錯(cuò)。參考文章: