我试图用一个htaccess的重写规则是这样的:
IF 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
我得到一个页面未找到
为什么重写规则仅适用,如果我的网址指向一个不存在的文件吗?
关闭它可能在你的服务器配置被打开在你的.htaccess MultiViews
选项。
Options -MultiViews
RewriteEngine On
RewriteRule ^dashboard/?$ dashboard.php [L,NC]
您也可以添加RewriteBase
略低于RewriteEngine
行:
RewriteBase /admin/