ModRewrite规则适用于:: 1但不适用于生产服务器

时间:2015-11-20 20:37:35

标签: .htaccess mod-rewrite

经过几个小时的挣扎,希望某人可以帮忙......

我有这样的网址:

    www.domain.com/entry/some-unimportant-text-788

我想改写为:

    www.domain.com/entry.php?entryID=788

我的规则如下:

    RewriteRule ^entry/.+?-([1-9][0-9]*)$ entry.php?entryID=$1 [L]

但它改写为:

    www.domain.com/entry.php/some-unimportant-text-788

所以它没有赶上"([1-9] [0-9] *)"部分。我哪里错了?也许它只是一个小小的'我失踪的事情...... g ===这次不是我的朋友,经过几个小时的尝试。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在.htaccess的开头添加,以禁用MultiViews:

Options -MultiViews

Apache docs on mod_negotiation描述了多视图选项启用时的功能:

  

如果   服务器接收/ some / dir / foo的请求和/ some / dir / foo没有   存在,然后服务器读取目录查找所有命名的文件   foo。*,并有效地伪造了一个类型地图,列出了所有这些   文件,为它们分配相同的媒体类型和内容编码   如果客户通过名字要求其中一个,那就会有。然后呢   选择与客户要求的最佳匹配,并返回   文档。