2014-01-26 2 views
1

У меня есть сайт в подпапке, в которой у меня есть файл .htaccess, который работает довольно хорошо, но если правила ничего не находят, он вызывает 500 внутренних ошибок сервера istead из 404 однако я думал, что решить эту проблему путем добавления документа в 500 ошибок, но страница 500 ошибок (в стороне от классических 500 сообщений) говорит:500 вместо 404 и 500 бросков 500 себя

«Кроме того, была обнаружена внутренняя ошибка ошибки сервера 500, а пытается для использования запроса ErrorDocument ».

Так у меня есть два вопроса:

  1. Почему 500 поднятых вместо 404?
  2. Что вызывает «дополнительную» ошибку при обработке документа с ошибкой 500?

Это мой .htaccess до сих пор:

DirectorySlash On 

RewriteEngine On 
RewriteBase /mysubdir/ 

ErrorDocument 404 /mysubdir/404.php 
ErrorDocument 500 /mysubdir/500.php 

RewriteRule ^folderexcludedone(/|$) - [NC,L] 
RewriteRule ^folderexcludedtwo(/|$) - [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/.]+)$ $1/ [L,R] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ $1.php [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/([^/]*)/?$ $1.php?$1=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/([^/]+)/([^/]*)/?$ $1.php?$2=$3 [L,QSA] 

ответ

1

Попробуйте эти правила:

DirectorySlash On 

RewriteEngine On 
RewriteBase /mysubdir/ 

ErrorDocument 404 /mysubdir/404.php 

RewriteRule ^(folderexcludedone|folderexcludedtwo)(/|$) - [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/.]+)$ $1/ [L,R] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME}.php !-f 
RewriteRule^- [L] 

RewriteRule ^([^/]+)/?$ $1.php [L,QSA] 

RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?$1=$2 [L,QSA] 

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?$2=$3 [L,QSA] 
+1

Я перепроверять весь этот код в моей локальной настройки Теперь – anubhava

+0

Попробуйте обновленный ответ сейчас. – anubhava

+0

Хорошо, похоже, теперь все необходимые правила работают :) - так могли бы вы объяснить, почему это работает сейчас? :) И почему у меня нет пользовательского документа с 500 ошибками? –

Смежные вопросы