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