我正在尝试使用htaccess重写规则,如下所示:
如果url =
http://example.com/admin/dashboard
加载文件http://example.come/admin/dashboard.php
我有这个文件结构
example.com/
|-- admin/
|-- .htaccess
|-- dashboard.php
如果我将其写在.htaccess文件中
RewriteEngine On
RewriteRule ^test$ dashboard.php
并在浏览器http://example.com/admin/test
上输入此地址
我正确看到了dashboard.php文件的内容
但是如果我将.htaccess文件更改为
RewriteEngine On
RewriteRule ^dashboard$ dashboard.php
然后在浏览器中输入http://example.com/admin/dashboard
,我会得到一个“未找到”页面
为什么RewriteRule仅在我的URL指向不存在的文件时起作用?
答案 0 :(得分:0)
关闭.htaccess中的MultiViews
选项,该选项可能已在服务器配置中打开。
Options -MultiViews
RewriteEngine On
RewriteRule ^dashboard/?$ dashboard.php [L,NC]
您也可以在RewriteBase
行下方添加RewriteEngine
:
RewriteBase /admin/