HTACCESS RewriteRule - 不从Pretty URL发送查询字符串

时间:2013-06-17 23:48:59

标签: php html .htaccess friendly-url pretty-urls

我遇到了RewriteRule的问题。我为我的搜索页面创建了一个漂亮的URL,它会发布到自己查询结果。但是,$_GET['type']变量未发送到页面。这在我的本地WAMP服务器上完全正常,但不会在我的Live托管服务器上返回结果。

e.g。 http://..com/search/searchType/ SearchType是我发送到页面的$_GET['type']数据。

我的.HTACCESS如下

RewriteEngine On
RewriteRule ^property/(.*)/(.*)/([0-9]+)/$ view_property.php?type=$1&id=$3 [L]
RewriteRule ^search/(.*)/ search.php?type=$1 [L]

1 个答案:

答案 0 :(得分:1)

问题是因为文件名search.php存在冲突,导致以“搜索”文字开头的RewriteRule发生冲突。

在发现此问题并进行更多研究后,我发现包括Options -MultiViews会导致mod_negotiation MultiViews停用。

这必须已在我的Live托管服务器上启用,并在我的本地主机上禁用。我会尽快找到并更新。

另一个解决方法是将RewriteRule网址重命名为^search/之外的其他名称或当前作为另一个文件存在的任何其他名称,以消除此冲突。