2011-05-31 391 views
2

在我的.htaccess文件中,我使用的mod_rewrite適用於某些Apache 2服務器,但不適用於其他服務器。例如,這改寫所有工作的Apache2服務器上:htaccess mod_rewrite&apache2不重寫正斜槓

RewriteRule ^index-stormwatch.html$ index.php?action=stormwatch 

但是,當我替換在像下面的mod_rewrite的斜線連字符...

RewriteRule ^index/stormwatch.html$ index.php?action=stormwatch 

...一些Apache 2的服務器會給我一個404錯誤(但不是全部)。我的mod_rewrite寫入不正確,還是需要編輯httpd.conf文件(或其他文件),以便apache接受正斜槓'/'?所有提到的服務器都是Apache 2/php5。

回答

1

你可以像這樣:

RewriteRule ^index/stormwatch\.html$ /index.php?action=stormwatch [NC,L,QSA] 

這應該採取URI /index/stormwatch.html

+0

照顧謝謝anubhava的協助和你的代碼。不幸的是,我使用的Apache2服務器(可能還有其他)仍然不喜歡正斜槓'/',即使使用改進的代碼。它很樂意重寫連字符' - ',但不是正斜槓'/'。我認爲Apache配置文件中的某些內容可能會導致問題。再次感謝你的幫助。非常感激。 – B6431 2011-05-31 22:17:22

+0

非常歡迎。請在Apache配置中啓用RewriteLog,然後查看它爲這種情況吐出了什麼。 – anubhava 2011-05-31 22:23:27

+0

我啓用了RewriteLog幾分鐘。用冒犯的網址創建一個日誌,並注意4個不同的「操作」:1.add路徑信息後綴2.strip每個目錄前綴3.applying模式4.pass through。這是我第一次嘗試創建和讀取日誌文件。可能需要一些時間,直到我完全理解每個動作。 strip per-dir前綴聽起來像是不應該發生的事情。無論如何,謝謝anubhava教我關於RewriteLog文件。我將繼續學習,直到我對重寫日誌有很好的理解。 – B6431 2011-06-02 02:21:36