2011-04-19 35 views
0

我目前得到接受的URL爲PHP的Web應用程序:/page.3,索引文件中獲取的數量,並使用它:網址與其他行動改寫

/page.3 > $_GET['id'] = 3 

IIS URL重寫模式是:

^([^/]+/)*([^/]+/)\.(\d+)$ 

和它產生index.php?id={R:3}

不過,我希望能夠指定的其他參數,例如

/page.3&do=4 > $_GET['id'] = 3 and $_GET['do'] = 4 

有沒有什麼辦法可以使用IIS重寫或PHP來做到這一點?

+0

如果您的重寫規則在最終的url中包含查詢字符串,您可以使用/page.3?do=4並從$ _GET中獲得相關信息... – yent 2011-04-19 14:41:34

+0

我已經嘗試過,但是我會再去一次 – bear 2011-04-19 14:46:02

+0

不知道IIS,但在Apache中有一個重寫的設置,它表示apache在重寫/重定向後追加查詢字符串 - [QSA]。根據@yent,也許正確的IIS設置您應該能夠以@yent顯示方式調用您的頁面:/page.3?do=4或者/page.3/?do=4 – shadyyx 2011-04-19 15:26:58

回答

0

出於某種原因,我不能讓你的正則表達式中的URL匹配像/page.3東西,所以我想到了我自己:

<rewrite> 
    <rules> 
     <rule name="RWW" enabled="true" stopProcessing="true"> 
      <match url="((.+)\.(\d+))" /> 
      <action type="Rewrite" url="index.php?id={R:3}" /> 
     </rule> 
    </rules> 
</rewrite> 

默認情況下,重寫將追加查詢字符串。

+0

這可以與/some/file/page.3一起使用嗎? – bear 2011-04-23 21:28:52

+0

@shamil - 是的。 – Kev 2011-05-03 00:31:36