请求错误地址时出错500而不是错误404

时间:2018-05-04 00:42:54

标签: regex apache .htaccess http-status-code-404 http-status-code-500

我目前的.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文件,因此无论是否有扩展名。

我对HTACCESS文件很新,所以我遇到了一些我无法理解的问题。 此外,我的主机不允许在免费托管计划上访问apache错误日志,所以我无法理解我的错误在哪里。

如果seomone可以帮助我,我真的很感激。 请随意访问我的网站,以了解我的问题:http://www.thehalcyon.tk/(不要注意所写的​​内容,但这是法国网站)

提前感谢任何愿意帮助我的开发者。

编辑:我在WAMP服务器上克隆了我的网站并检查了错误日志。 它说太多重定向,可能是由于Path Beautifying规则。 当我禁用它们并使用文件扩展名(.php)时,它可以工作。 有没有办法找到结合这两个特征的方法?

0 个答案:

没有答案