Iis

IIS 10 URL 重寫給出 404 錯誤

  • July 15, 2021

我目前堅持我的重寫規則,我需要一些關於它的提示。

情況是這樣的:我們有兩個網站,一個是 website.com,另一個是 website-staging.com(這裡只是範例)

在 website.com 上,對於某些 url,我想使用重寫規則來訪問暫存網站並顯示結果。

這是 web.config 文件中的規則:

<rule name="RewriteSearchQueries" patternSyntax="Wildcard" stopProcessing="true">
<match url="search?*" />
<action type="Rewrite" url="https://website-staging.com/{R:0}" logRewrittenUrl="true" />

我做了模式測試,一切正常。用於重寫的 URL 工作正常,但是當我點擊 website-staging.com/search?arg=1&blabla=2 時,我收到 404 錯誤消息:

404 - 找不到文件或目錄。您要查找的資源可能已被刪除、名稱已更改或暫時不可用。

我也嘗試採取以下措施:

<action type="Rewrite" url="https://website-staging.com/search?{R:1}" logRewrittenUrl="true" />

它也沒有工作。有什麼線索嗎?

編輯:應用程序請求路由已安裝,代理已啟用。

所以.. 按照 Lex Li 的建議安裝 FRT 後,我看到沒有匹配項,因此沒有進行 URL 重寫。

我做了一次又一次的模式測試,一切都很好。

最後,我決定用正則表達式替換萬用字元,並且.. Tadam !有效。由於一個我無法解釋的原因,萬用字元模式沒有被正確檢測到,儘管模式測試器沒問題,而使用正則表達式完美地做到了這一點。

因此,如果您遇到類似的問題,請一直使用正則表達式!

引用自:https://serverfault.com/questions/1068765