为什么网址重写不起作用?

时间:2017-06-08 15:35:22

标签: php regex apache .htaccess

我想从

更改我的网址

http://localhost/delhian/destinations_list.php?ref=monuments_in_delhi

http://localhost/delhian/destinations_list/monuments_in_delhi

  

我写了以下htaccess规则。

RewriteEngine on
RewriteRule ^destinations_list/([A-Za-z_]+)/?$      destinations_list.php?ref=$1

我不知道我在这里做错了什么,但这不起作用。

当我访问网址时

http://localhost/delhian/destinations_list/monuments_in_delhi

它向我显示Undefined index ref

任何人都可以告诉我这里缺少什么,为什么它不起作用以及此消息的含义是什么Undefined index ref

1 个答案:

答案 0 :(得分:3)

在htaccess的顶部添加,禁用MultiViews:

Options -MultiViews

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

  

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