Получение ошибки 500 вместо ошибки 404 при запросе неправильного адреса - PullRequest
0 голосов
/ 04 мая 2018

У меня сейчас проблема с моим файлом .htaccess. Я установил несколько ErrorDocument с, чтобы мои собственные файлы отображались при возникновении ошибки, но у меня проблема с 404. Я почти уверен, что мой файл .htaccess поврежден, так как я поместил некоторые случайные вещи, которые я не всегда понимаю (даже если я все еще понимаю, что они делают). Вот код:

# Allow Rewrite
RewriteEngine On

# Rewrite base
RewriteCond %{HTTP_HOST} ^thehalcyon.tk [NC]
RewriteRule ^(.*)$ http://www.thehalcyon.tk/?$1 [L,R=301,NC]

# Resource access
RewriteRule ^(design|js|images)($|/) - [L]

# Rewrite profile path
RewriteRule ^users/([0-9]+)/$ /user.php?p=$1

# Redirect quick URLs to subdomains
RewriteRule ^(brg|brogaming|gaming)/?$ http://brg.thehalcyon.tk/ [R=301,L,NC]
RewriteRule ^(pxlr|pixelated|pixelatedreality|pixelrel|dev)/?$ http://pxlr.thehalcyon.tk/ [R=301,L,NC]
RewriteRule ^(prod|halprod|halcyonprod|av)/?$ http://prod.thehalcyon.tk/ [R=301,L,NC]

# Path beautifying
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /$1.php
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php

# 404 redirect if !exists (I have removed this part for the moment)
RewriteCond %{THE_REQUEST} \.php [NC]
RewriteRule ^(?!404\.*)$ - [L,NC,R=404]

# Error Documents Redirect
ErrorDocument 404 http://www.thehalcyon.tk/notFound.php
ErrorDocument 403 http://www.thehalcyon.tk/forbidden.php
ErrorDocument 401 http://www.thehalcyon.tk/unauthorized.php

# Options
Options All +FollowSymLinks
Options All -Indexes

Поэтому, когда я пытаюсь получить доступ к файлу, который не существует, я получаю ошибку 500, а не ошибку 404 и следующее сообщение: Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. Иногда это просто перенаправляет меня на домашнюю страницу моего хостинг-провайдера, что действительно странно.

Я хотел бы перенаправить браузер на мой файл 404 всякий раз, когда они вводят неправильный URL, и, таким образом, независимо от того, есть расширение или нет.

Я совершенно новичок в файлах HTACCESS, поэтому у меня возникают проблемы, которые я не могу понять. Также мой хост не разрешает доступ к журналам ошибок Apache на бесплатных тарифных планах, поэтому я не могу понять, где моя ошибка.

Я был бы очень признателен, если бы seomone мог мне помочь с этим. Не стесняйтесь посетить мой сайт, чтобы понять, в чем заключается моя проблема: http://www.thehalcyon.tk/ (не обращайте внимания на то, что написано, хотя это французский сайт)

Заранее благодарю за помощь любого другого разработчика, готового помочь мне.

РЕДАКТИРОВАТЬ: я клонировал свой веб-сайт на сервере WAMP и проверил журнал ошибок. Там написано слишком много переадресаций, вероятно, из-за правил украшения пути. Когда я отключаю их и использую расширения файлов (.php), это работает. Любой способ найти способ объединить две функции?

...