[英]Error 404 page and htaccess issues
发生的情况如下:我有一个客户要求我创建一个自定义的404错误页面(出于SEO目的),下面是他的网站:
http://www.proloterica.com.br (网站)
http://www.proloterica.com.br/erros/404.html(404路径有效)
http://www.proloterica.com.br/contato/cont (尝试重现404错误,没有任何反应)
http://www.proloterica.com.br/cont (发生错误500):
内部服务器错误:服务器遇到内部错误或配置错误,无法完成您的请求。 请与服务器管理员proloterica@proloterica.com.br联系,并通知他们错误发生的时间,以及您可能做的任何可能导致错误的事情。 服务器错误日志中可能会提供有关此错误的更多信息。 此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。
htaccess文件如下:
AddDefaultCharset ISO-8859-1
SetEnv SESSAO "SITE"
Options -Indexes
#Habilita o Módulo de Reescrita
RewriteEngine On
#Se a URL apontar para um arquivo, vai diretamente para ele
RewriteCond %{REQUEST_FILENAME} !-f
#Se a URL apontar para uma pasta, vai diretamente para ela
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?(.*)$ $1/index.php?id=$2&pg=$3&sub=$4&aux1=$5&aux2=$6&aux3=$7&aux4=$8
#RewriteCond %{HTTP_HOST} !^www\.
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
ErrorDocument 404 /erros/404.html
任何想法如何解决这个问题?
如果我删除以下内容,错误页面404将起作用:
RewriteRule ^([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?(.*)$ $1/index.php?id=$2&pg=$3&sub=$4&aux1=$5&aux2=$6&aux3=$7&aux4=$8
首先,最有可能的是,由于没有设置标志[L],因此出现了此错误。 因此,请替换:
RewriteRule ^([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?(.*)$ $1/index.php?id=$2&pg=$3&sub=$4&aux1=$5&aux2=$6&aux3=$7&aux4=$8
有:
RewriteRule ^([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?([^/]*)?/?(.*)$ $1/index.php?id=$2&pg=$3&sub=$4&aux1=$5&aux2=$6&aux3=$7&aux4=$8 [L]
(我在该字符串的末尾添加了[L] )。
并注意,将只执行RewriteCond下的一个字符串。 因此,当您删除RewriteRule时,您的ErrorDocument即可工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.