Php 试图将ErrorDocuments添加到HTACCESS,但重写冲突

Php 试图将ErrorDocuments添加到HTACCESS,但重写冲突,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我在这件事上有点麻烦。我希望有任何错误代码,用户得到(400401403404500)路由到根目录中名为error.php的页面 我已经在网上尽可能地研究过了,但没有发现任何运气。我的问题有点特殊,我对htaccess文件的知识非常基础 代码如下: ## Route error pages ErrorDocument 400 /error.php ErrorDocument 401 /error.php ErrorDocument 403 /error.php ErrorDocument 404

我在这件事上有点麻烦。我希望有任何错误代码,用户得到(400401403404500)路由到根目录中名为error.php的页面

我已经在网上尽可能地研究过了,但没有发现任何运气。我的问题有点特殊,我对htaccess文件的知识非常基础

代码如下:

## Route error pages
ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php

Options +FollowSymlinks -Multiviews -Indexes
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ $1.php
RewriteRule ^item/(.*)$ ./itemlookup.php?search=$1
RewriteRule ^recipe/(.*)$ ./recipelookup.php?search=$1
RewriteRule ^secret/recipe/(.*)$ ./secret/recipelookup.php?search=$1
RewriteRule ^api/json/idbyname/(.*)$ ./api/json/getidbyname.php?id=$1 [QSA]
RewriteRule ^api/csv/idbyname/(.*)$ ./api/csv/getidbyname.php?id=$1 [QSA]
RewriteRule ^api/json/item/(.*)$ ./api/json/items.php?id=$1 [QSA]
RewriteRule ^api/csv/item/(.*)$ ./api/csv/items.php?id=$1 [QSA]
RewriteRule ^api/json/forge/(.*)$ ./api/json/mysticforge.php?id=$1 [QSA]
RewriteRule ^api/csv/forge/(.*)$ ./api/csv/mysticforge.php?id=$1 [QSA]
RewriteRule ^api/json/history/(.*)$ ./api/json/tradehistory.php?id=$1 [QSA]
RewriteRule ^api/csv/history/(.*)$ ./api/csv/tradehistory.php?id=$1 [QSA]
RewriteRule ^api/json/history-daily/(.*)$ ./api/json/tradehistorydaily.php?id=$1 [QSA]
RewriteRule ^api/csv/history-daily/(.*)$ ./api/csv/tradehistorydaily.php?id=$1 [QSA]
RewriteRule ^api/json/recipe/(.*)$ ./api/json/craftingrecipes.php?id=$1 [QSA]
RewriteRule ^api/csv/recipe/(.*)$ ./api/csv/craftingrecipes.php?id=$1 [QSA]
RewriteRule ^api/json/exchange/(.*)$ ./api/json/gemexchange.php [QSA]
RewriteRule ^api/csv/exchange/(.*)$ ./api/csv/gemexchange.php [QSA]

#Gzip Compression, Saves on bandwidth
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript application/vnd.ms-fontobject application/x-font-ttf image/svg+xml
</ifmodule>
#End Gzip

## EXPIRES CACHING - 1 Month ##
<FilesMatch "\.(gif|png|jpg|jpeg|woff|woff2|svg)$">
ExpiresActive on 
ExpiresDefault "access plus 1 month"
</FilesMatch>
<FilesMatch "^(jquery-1\.9\.1\.min\.js)$">
ExpiresActive on 
ExpiresDefault "access plus 1 year"
</FilesMatch>
##路由错误页面
ErrorDocument 400/error.php
ErrorDocument 401/error.php
ErrorDocument 403/error.php
ErrorDocument 404/error.php
ErrorDocument 500/error.php
选项+后续符号链接-多视图-索引
重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$$1.php
重写规则^item/(.*)$./itemlookup.php?搜索=$1
重写规则^recipe/(.*)$。/recipelookup.php?搜索=$1
重写规则^secret/recipe/(.*)$。/secret/recipelookup.php?搜索=$1
重写规则^api/json/idbyname/(*)$./api/json/getidbyname.php?id=$1[QSA]
重写规则^api/csv/idbyname/(*)$./api/csv/getidbyname.php?id=$1[QSA]
重写规则^api/json/item/(.*)$./api/json/items.php?id=$1[QSA]
重写规则^api/csv/item/(.*)$./api/csv/items.php?id=$1[QSA]
重写规则^api/json/forge/(.*)$./api/json/mysticforge.php?id=$1[QSA]
重写规则^api/csv/forge/(*)$./api/csv/mysticforge.php?id=$1[QSA]
重写规则^api/json/history/(.*)$./api/json/tradehistory.php?id=$1[QSA]
重写规则^api/csv/history/(.*)$./api/csv/tradehistory.php?id=$1[QSA]
重写规则^api/json/history daily/(.*)$./api/json/tradehistorydaily.php?id=$1[QSA]
重写规则^api/csv/history daily/(.*)$./api/csv/tradehistorydaily.php?id=$1[QSA]
重写规则^api/json/recipe/(*)$./api/json/craftingrecipes.php?id=$1[QSA]
重写规则^api/csv/recipe/(.*)$./api/csv/craftingrecipes.php?id=$1[QSA]
重写规则^api/json/exchange/(*)$./api/json/gemexchange.php[QSA]
重写规则^api/csv/exchange/(.*)$./api/csv/gemexchange.php[QSA]
#Gzip压缩,节省带宽
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript application/vnd.ms-fontobject application/x-font-ttf image/svg+xml
#结束Gzip
##过期缓存-1个月##
过期于
ExpiresDefault“访问加1个月”
过期于
ExpiresDefault“访问权限加1年”
我的用户将正确查看现有页面。但是任何404页错误和它的相似性都将被重新路由到500个内部服务器错误(没有错误页路由)

简而言之,ErrorDocument行不起作用。感谢您的帮助

真诚地, 重燃机

  • 最后保持
    .php
    添加规则
  • 仅当存在匹配文件时才添加
    .php
  • 将规则替换为以下内容:

    ## Route error pages
    ErrorDocument 400 /error.php
    ErrorDocument 401 /error.php
    ErrorDocument 403 /error.php
    ErrorDocument 404 /error.php
    ErrorDocument 500 /error.php
    
    Options +FollowSymlinks -Multiviews -Indexes
    RewriteEngine on
    
    RewriteRule ^(index|error)\.php$ - [L,NC]
    
    RewriteRule ^item/(.*)$ itemlookup.php?search=$1 [L,QSA]
    RewriteRule ^recipe/(.*)$ recipelookup.php?search=$1 [L,QSA]
    RewriteRule ^secret/recipe/(.*)$ secret/recipelookup.php?search=$1 [L,QSA]
    RewriteRule ^api/json/idbyname/(.*)$ api/json/getidbyname.php?id=$1 [QSA,L]
    RewriteRule ^api/csv/idbyname/(.*)$ api/csv/getidbyname.php?id=$1 [QSA,L]
    RewriteRule ^api/json/item/(.*)$ api/json/items.php?id=$1 [QSA,L]
    RewriteRule ^api/csv/item/(.*)$ api/csv/items.php?id=$1 [QSA,L]
    RewriteRule ^api/json/forge/(.*)$ api/json/mysticforge.php?id=$1 [QSA,L]
    RewriteRule ^api/csv/forge/(.*)$ api/csv/mysticforge.php?id=$1 [QSA,L]
    RewriteRule ^api/json/history/(.*)$ api/json/tradehistory.php?id=$1 [QSA,L]
    RewriteRule ^api/csv/history/(.*)$ api/csv/tradehistory.php?id=$1 [QSA,L]
    RewriteRule ^api/json/history-daily/(.*)$ api/json/tradehistorydaily.php?id=$1 [QSA,L]
    RewriteRule ^api/csv/history-daily/(.*)$ api/csv/tradehistorydaily.php?id=$1 [QSA,L]
    RewriteRule ^api/json/recipe/(.*)$ api/json/craftingrecipes.php?id=$1 [QSA,L]
    RewriteRule ^api/csv/recipe/(.*)$ api/csv/craftingrecipes.php?id=$1 [QSA,L]
    RewriteRule ^api/json/exchange/(.*)$ api/json/gemexchange.php [QSA,L]
    RewriteRule ^api/csv/exchange/(.*)$ api/csv/gemexchange.php [QSA,L]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.+?)/?$ $1.php [L]
    
    #Gzip Compression, Saves on bandwidth
    <ifmodule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript application/vnd.ms-fontobject application/x-font-ttf image/svg+xml
    </ifmodule>
    #End Gzip
    
    ##路由错误页面
    ErrorDocument 400/error.php
    ErrorDocument 401/error.php
    ErrorDocument 403/error.php
    ErrorDocument 404/error.php
    ErrorDocument 500/error.php
    选项+后续符号链接-多视图-索引
    重新启动发动机
    重写规则^(索引|错误)\.php$-[L,NC]
    重写规则^item/(.*)$itemlookup.php?search=$1[L,QSA]
    重写规则^recipe/(*)$recipelookup.php?搜索=$1[L,QSA]
    重写规则^secret/recipe/(.*)$secret/recipelookup.php?搜索=$1[L,QSA]
    重写规则^api/json/idbyname/(*)$api/json/getidbyname.php?id=$1[QSA,L]
    重写规则^api/csv/idbyname/(*)$api/csv/getidbyname.php?id=$1[QSA,L]
    重写规则^api/json/item/(.*)$api/json/items.php?id=$1[QSA,L]
    重写规则^api/csv/item/(.*)$api/csv/items.php?id=$1[QSA,L]
    重写规则^api/json/forge/(*)$api/json/mysticforge.php?id=$1[QSA,L]
    重写规则^api/csv/forge/(.*)$api/csv/mysticforge.php?id=$1[QSA,L]
    重写规则^api/json/history/(.*)$api/json/tradehistory.php?id=$1[QSA,L]
    重写规则^api/csv/history/(.*)$api/csv/tradehistory.php?id=$1[QSA,L]
    重写规则^api/json/history daily/(.*)$api/json/tradehistorydaily.php?id=$1[QSA,L]
    重写规则^api/csv/history daily/(.*)$api/csv/tradehistorydaily.php?id=$1[QSA,L]
    重写规则^api/json/recipe/(.*)$api/json/craftingrecipes.php?id=$1[QSA,L]
    重写规则^api/csv/recipe/(.*)$api/csv/craftingrecipes.php?id=$1[QSA,L]
    重写规则^api/json/exchange/(*)$api/json/gemexchange.php[QSA,L]
    重写规则^api/csv/exchange/(*)$api/csv/gemexchange.php[QSA,L]
    重写cond%{REQUEST_FILENAME}-D
    RewriteCond%{REQUEST_FILENAME}.php-f
    重写规则^(+?)/?$$1.php[L]
    #Gzip压缩,节省带宽
    AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript application/vnd.ms-fontobject application/x-font-ttf image/svg+xml
    #结束Gzip
    
    因此,您的重点是当用户到达error.php时,{500 internal server error}就会出现。请检查apache错误日志,以查看导致500错误的原因。我会从那里开始。