错误404页面和htaccess问题

时间:2015-11-04 21:36:54

标签: php .htaccess http-status-code-404

发生的事情如下:我有一个客户端,要求我创建一个自定义404错误页面(用于搜索引擎优化目的),在他的网站下面:

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文件:

<ion-view view-title="Login" ng-controller="LoginCtrl as login" has-bouncing="false">
    <ion-content>
        <div class="splash"
             ng-click="login.splashClick()"
             ng-class="{ 'splash-up'      : login.inputFocused,
                         'splash-default' : login.inputFocused == false }">

任何想法如何解决这个问题?

如果删除以下内容,错误页面404将起作用:

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

1 个答案:

答案 0 :(得分:1)

首先,您很可能因为没有设置标志[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 就会正常工作。