我正在使用mod_rewrite来整理我的网址
有一条规则可转化为以下内容:
RewriteEngine On
RewriteRule ^search/([^/]*)/([^/]*)$ /search?type=$1&query=$2 [L]
/search?type=title&query=me
/search/title/me
但是这不起作用,当我转到上面的网址/search/title/me
时,我无法获取参数type
和query
如果我将重写规则更改为
RewriteRule ^search2/([^/]*)/([^/]*)$ /search?type=$1&query=$2 [L]
它工作正常,我能够得到所有的参数。 我不明白这是怎么发生的。
请帮帮我!!
答案 0 :(得分:1)
这是由MultiViews
选项引起的。在MultiViews
之前运行的Apache's content negotiation module
使用选项mod_rewrite
,并使Apache服务器匹配文件扩展名。因此/file
可以在网址中,但它会投放/file.php
。
在.htaccess开头使用此行禁用它:
Options -MultiViews