Ошибка 404 страницы и проблемы с htaccess

1

Что происходит, так это следующее: у меня есть клиент, который попросил меня создать пользовательскую страницу ошибок 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):

Внутренняя ошибка сервера. Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос. Пожалуйста, свяжитесь с администратором сервера, [email protected] и сообщите им о времени возникновения ошибки и о том, что вы могли бы сделать, что могло привести к ошибке. Дополнительная информация об этой ошибке может быть доступна в журнале ошибок сервера. Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 500 Internal Server Error.

Здесь следует файл 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
  • 2
    Сначала загляните в файл apache error.log и добавьте сообщение об ошибке в свой вопрос.
  • 0
    У меня нет доступа к логам, он размещен в KingHost, у меня просто есть доступ к FTP
Показать ещё 1 комментарий
Теги:
.htaccess
http-status-code-404

1 ответ

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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню