2013-10-31 176 views
2

我有一個PHP CGI安裝了Apache2的服務器來運行PHP腳本 裏面我的一個目錄中我有.htaccess文件有以下幾點:mod_rewrite的不通過查詢字符串

RewriteEngine On 
RewriteRule ^article\/(\d+)\/?$ article.php?id=$1 [NC,QSA] 

進入URI時如http://www.mysite.com/article/132/重寫品牌重定向,但內部article.php我不能在另一臺服務器我已經與mod_php的apache的讀$_GET["id"]var_dump$_GET/$_REQUEST導致空數組

- 前夕一切正常。

我不是100%肯定的是,CGI是其中的原因 - 但我有一個很好的理由假定這樣

謝謝!

回答

2

這聽起來很模糊,就像mod_negotiation在你不想要的時候搞亂了一些東西。嘗試添加給你的htaccess文件:

Options -Multiviews 

Multiviews選項打開的mod_negotiation模塊一些東西,試圖猜測一個要求是什麼資源之後。當它看到URI /article/something,然後它看到有一個文件/article.php時,它假定你的意思是/article.php/something,並完全繞過mod_rewrite。

+0

它的工作!謝謝 你能解釋一下它是做什麼的? (我真的有'選項包括FollowSymLinks MultiViews'在我的'.conf') –

+0

@YaronU。請參閱:http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews它幾乎做了我在答案中描述的內容。 –