【发布时间】:2019-09-26 00:59:51
【问题描述】:
我有这个简单的 htaccess 文件,它应该将每个请求带到 index.php?site=
问题是,当 htaccess 的文件夹中有一个文件(如 test.php)并且 url 是 domain.com/test 时,它会抛出一个标准的“404 not found”错误。
我该如何解决这个问题?
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?site=$1 [QSA,L]
谢谢!
【问题讨论】:
-
它会抛出 什么 错误?还是我们打算猜测?
-
让我猜猜:“文件
index.php不存在!” -
既然该文件会存在,那么您肯定会在此处张贴其中包含的重要部分...
-
它出现在标题中。它给出了 404 Not Found 错误。 index.php 存在,有趣的是,如果 URL 是文件名,不带扩展名(不管文件名如何),它只会抛出错误。因此,如果我的根目录中有一个名为 login.php 的文件,我将无法访问 domain.com/login/,因为它会引发 404 错误。其他一切都很好。
-
也许你有 another 内部重定向某处重写类似。由于您在这里测试
%{REQUEST_FILENAME},它不会被其他重定向改变。问题是什么抛出了 404,这就是为什么我要求路由脚本的内容。如果引用的页面不存在,我可以想象它会抛出 404...
标签: .htaccess http-status-code-404