这似乎很简单。 ErrorDocument
重定向到另一个页面:.htaccess和错误页面 - 留在页面上,不要重定向
RewriteEngine On
ErrorDocument 400 /err/e=400
ErrorDocument 401 /err/e=401
ErrorDocument 403 /err/e=403
ErrorDocument 404 /err/e=404
ErrorDocument 500 /err/e=500
但是这些自定义错误页的问题是,浏览器实际上重定向到/err/e=404
的页面,而不是仅仅显示其内容。不使用自定义错误页面时,浏览器中的URL保持不变,因此用户无需再次键入即可更正URL。
问题:如何创建自定义错误页面,这些页面不改变URL,并把它像domain.tld/nonexistantfile
?
背景:使用Debian Wheezy,Apache2和PHP。
更新发布整个.htaccess文件
RewriteEngine On
ErrorDocument 400 /err/e=400
ErrorDocument 401 /err/e=401
ErrorDocument 403 /err/e=403
ErrorDocument 404 /err/e=404
ErrorDocument 500 /err/e=500
RewriteRule ^favicon.ico$ favicon.ico [L]
RewriteRule ^css/(.*) css/$1 [L]
RewriteRule ^downloads/(.*) downloads/$1 [L]
RewriteRule ^images/(.*) images/$1 [L]
RewriteRule ^js/(.*) js/$1 [L]
RewriteRule index.php(.*) index.php$1 [L]
RewriteRule ^(.*)/(.*=.*) index.php?controller=$1&$2 [L]
RewriteRule ^(.*=.*) index.php?$1 [L]
RewriteRule ^(.*) index.php?controller=$1 [L]
最后一部分使URL的喜欢/home
或page1/page2/param=123
没有这些'ErrorDocument'不会让浏览器重定向到'/ err/e = 404'。你可能会有一些冲突的规则造成这种情况。你能发布完整的.htaccess吗? – anubhava 2014-10-19 06:33:19
在这里,你去。 :) – bytecode77 2014-10-19 06:36:22