2011-11-22 39 views
7

這是一個很長的,但我希望找到一個簡單的解決方法,只有當應用程序忽略/推斷查詢字符串時纔會顯示一個奇怪的錯誤。mod_rewrite只在GET

之前,我深入挖掘千行精縮第三方的javascript,我想找出是否使用mod_rewrite我可以自動應用的查詢字符串。

RewriteRule ^index\.php$ index.php?module=Home&action=index 

現在,這會工作得很好,除了有時所有的數據將被張貼,所以我需要一個RewriteCond因此該規則將只在GET請求,而不是請求POST火。

這可能嗎?

回答

10

添加這個條件......

RewriteCond %{REQUEST_METHOD} !POST 

...不匹配POST請求。

+0

我知道它必須是這樣的。我挖掘了文檔,空手而去。我感謝幫助! –

3

the docs

  • 服務器變量:這些形式%{ NAME_OF_VARIABLE }其中NAME_OF_VARIABLE可以從以下列表中的一個字符串變量:

    ...

連接&要求:
...
REQUEST_METHOD

所以,是的。使用RewriteCond與該服務器變量。

+0

非常感謝您! –

+1

+1因爲我知道答案的唯一原因是因爲你曾經告訴我:) – alex

9

我建議顯式的只​​在請求方法爲GET時觸發RewriteRule,而不是每當它不是POST時,因爲有很多其他方法。所以你的重寫條件可能是這樣的:

RewriteCond %{REQUEST_METHOD} =GET 

RewriteRule ^index\.php$ index.php?module=Home&action=index