2013-02-25 15 views
0

我試圖讓iis7的URL重寫來處理主目錄中的查詢。最終目標是讓它將index.php追加到查詢字符串的開頭。我嘗試的每件事都以500錯誤結束。我究竟做錯了什麼?URL在主目錄中的重寫查詢iis

<rule name="post preview fix" patternSyntax="ECMAScript"> 
    <match url="^\?p=([0-9]+)&preview=true" /> 
    <action type="Rewrite" url="index.php?p={R:1}&preview=true" /> 
</rule> 

回答

0

由於您希望將您的規則基於查詢字符串,所以必須使用條件。
像這樣的東西應該做的:

<rule name="post preview fix" stopProcessing="true"> 
    <match url="^index.php$" negate="true" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="^p=([0-9]+)&preview=true" /> 
    </conditions> 
    <action type="Rewrite" url="index.php" /> 
</rule> 

如果請求的頁面不index.php和查詢字符串匹配^p=([0-9]+)&preview=true,那麼rwrite被觸發。
默認情況下,appendQueryString選項設置爲true,因此不需要設置它。

+0

我似乎仍然得到這個規則500錯誤。 – 2013-02-25 21:55:51

+0

如果你用''替換'',你有瀏覽器中想要的網址?如果是,那麼問題來自你的'index.php'文件。 – cheesemacfly 2013-02-25 21:57:39

+0

都是500錯誤 – 2013-02-25 21:59:30