我想更改404错误。我将404错误页面重定向到自定义页面,而不重定向URL本身。这有效,见(http://www.gincher.net/not.exist)。
我正在使用Google PageSpeed,仅在用户从www
输入时才有效。所以我添加了一个重定向来添加www
,这对我有用。
当我将它们组合起来时,问题就开始了(http://gincher.net/not.exist)。它给出了这个错误:
永久移动
该文件已移至此处(gincher.net/not.exist)。
此外,遇到500内部服务器错误错误 尝试使用ErrorDocument来处理请求。
这是我的HTACCESS代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^gincher.net$
RewriteRule (.*) http://www.gincher.net$1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /error.php [L]
请指教!
答案 0 :(得分:1)
首先,您正在重新定义ErrorDocument
的行为。
你的规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /error.php [L]
与
相同ErrorDocument 404 /error.php
然后,您的第一条规则中仍然存在语法错误 用这个替换你当前的代码
ErrorDocument 404 /error.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^gincher\.net$ [NC]
RewriteRule ^(.*)$ http://www.gincher.net/$1 [R=301,L]
注意:您也可以在不对域名进行硬编码的情况下编写相同的规则
ErrorDocument 404 /error.php
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]