我的htaccess出现问题,这会让我完全发疯。
我想用event / 158替换event.php?id = 158 和event.158?documents中的event.php?id = 158&display = documents
我已经找到了很多这样做的例子,但是如果万一,那是行不通的,我也不明白为什么。
如果我的规则是
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^event([0-9]+)$ event.php?id=$1 [L]
然后id参数在转储($ _REQUEST)中
Array ( [id] => 158 [SERVERID94994] => 134038 [PHPSESSID] => 70ed00f7c3854afa31a0d8d5d4a02840 )
但是
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^event/([0-9]+)$ event.php?id=$1 [L]
然后$ _REQUEST中的id参数不再可用
Array ( [SERVERID94994] => 134038 [PHPSESSID] => 70ed00f7c3854afa31a0d8d5d4a02840 )
=> Missing id
请您解释一下第二条规则有什么问题吗?
谢谢
答案 0 :(得分:0)
添加此项以禁用MultiViews:
Options -MultiViews
Apache docs on mod_negotiation描述了启用多视图选项后的功能:
如果 服务器收到对/ some / dir / foo的请求,而/ some / dir / foo没有 存在,然后服务器读取目录以查找所有名为 foo。*,并有效地伪造了一个将所有这些命名的类型映射 文件,为其分配相同的媒体类型并对其进行内容编码 如果客户要求提供其中一个姓名,则将具有。然后 选择最符合客户要求的匹配项,然后返回 文档。
使用:
options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteRule ^event/([0-9]+)$ event.php?id=$1 [L]