【发布时间】:2016-07-21 06:25:23
【问题描述】:
我有一个 .htaccess 文件来管理我网站上的 rewrite_rules。我还设置了 404 重定向 命令,以便在访问者输入错误 URL 时将其导航到指定页面。但是这个重定向不起作用,如果访问者请求无效的 URL,我会得到 500 Internal Server Error。以下是我的部分代码:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([0-9]+)/([^/]+)/?$ index.php?lang=$1&page=$2&id=$3&des=$4 [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/(p[0-9]+)/?$ index.php?lang=$1&page=$2&pn=$3 [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?lang=$1&page=$2 [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?lang=$1&page=home [NC,QSA,L]
ErrorDocument 404 http://www.mywebsite.com/404/
我的代码中缺少什么导致此问题?
【问题讨论】:
-
请在第一行添加。重写引擎开启
-
@Alex 这只是我的 .htaccess 文件的一部分。它包含你所说的
-
@MohammadSaberi,每当 apache 出现 500 Internal Server Error 时,它总是会在其 error.log 中写入一些错误。您收到此错误后是否立即检查了该文件?我认为您应该将整个
.htaccess发给您,以便我们重现问题并找到解决方案。 -
还有一件事。您能否展示完整的
.htaccess和“错误网址” 的示例? -
@MohammadSaberi,你没听见吗?给我看你的完整的.htaccess。我很确定它有一个错误。尤其是在你的话之后:“
/404/不是文件夹”。
标签: php apache .htaccess redirect http-status-code-404