我遇到了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]
答案 0 :(得分:1)
问题是因为文件名search.php
存在冲突,导致以“搜索”文字开头的RewriteRule
发生冲突。
在发现此问题并进行更多研究后,我发现包括Options -MultiViews
会导致mod_negotiation MultiViews
停用。
这必须已在我的Live托管服务器上启用,并在我的本地主机上禁用。我会尽快找到并更新。
另一个解决方法是将RewriteRule
网址重命名为^search/
之外的其他名称或当前作为另一个文件存在的任何其他名称,以消除此冲突。