2016-02-17 61 views
1

我們的URL重寫如下。我測試了IIS 8.5 URL Rewrite中的模式,並將模式匹配爲我們想要的。但是,每次都是404。有人會看看我的URL重寫有什麼問題嗎?謝謝。URL Rewrite疑難解答

網址:devbox.mysite.com/article/how-to-use-onedrive

模式:(.*)/article/(.*)$
行動重寫URL:{R:1}/article/?artID={R:2}

目前該頁面顯示404下面是XML代碼在web.config文件中。

<rule name="Article-rewrite" enabled="true"> 
    <match url="(.*)/article/(.*)$" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
    <action type="Rewrite" url="{R:1}/article/?artID={R:2}" appendQueryString="false" /> 
</rule> 
+0

您可以添加一些關於您想要實現的細節和準確的規則XML。目前看起來您的目標網址是'devbox.mysite.com/article/?artID =使用方法onedrive'在您瀏覽時是否有效? – NikolaiDante

+0

是的,如果我在任何瀏覽器上瀏覽到網址devbox.mysite.com/article/?artID=how-to-use-onedrive,它都可以正常工作。但是當用戶在瀏覽器中鍵入devbox.mysite.com/article/how-to-use-onedrive時,我希望它能夠工作。 – Charlie123

回答

1

試試這個:

<rule name="Article-rewrite" enabled="true"> 
    <match url="article/(.*)$" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
    <action type="Rewrite" url="article/?artID={R:1}" appendQueryString="false" /> 
</rule> 

我已經刪除從匹配的網址域名,因爲你不切換域。

+0

嘿,非常感謝您的幫助。有用!但是,你能告訴我爲什麼我的網址重寫不起作用,但你的是? – Charlie123

+0

我開始思考它在開始時沒有捕獲協議(http/https)的匹配,但這只是一個猜測 - 重寫規則比重定向規則難以測試,因爲結果是不可見的。 – NikolaiDante

+0

我只是玩了一些遊戲,而且我無法重寫任何其他相關鏈接,這很有意義,因爲它永遠不會讓您的應用程序重寫。 – NikolaiDante