htaccess未重定向到自定义404

时间:2016-10-08 09:51:19

标签: php .htaccess http-status-code-404

我页面上的所有内容都有效,但非现有页面被识别为参数,并显示带有页眉和页脚的页面。

ErrorDocument 404 /error
ErrorDocument 403 /error
ErrorDocument 500 /error

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?v=$1 [L,QSA]
RewriteRule ^(.*)-(.*)-(.*)$ index.php?v=$1&page=$2&folder=$3 [L,QSA]

当我尝试打开mydomain.com/non-existing-page而不是"非现有页面"被识别为参数$ v并且页面mydomain.com/index.php$v=non-existing-page仅使用页眉页脚而没有内容打开。

1 个答案:

答案 0 :(得分:1)

您可以使用.*更改[^/-]+,以便只允许index.php处理单个参数(非斜杠+非连字符)。

您可以使用以下规则:

ErrorDocument 404 /error
ErrorDocument 403 /error
ErrorDocument 500 /error

RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)-([^/]+)-([^/]+)/?$ index.php?v=$1&page=$2&folder=$3 [L,QSA]