当站点url未知时,重定向到带有.htaccess的自定义404错误页
我使用.htaccess文件获取用户友好的URL,如: mysite/关于 我的网站/文章/一些文章 等等 一切正常,但现在我必须在.htaccess文件中添加一个到自定义404页面的重定向: mysite/error-404 出于测试目的,我这样做:当站点url未知时,重定向到带有.htaccess的自定义404错误页,.htaccess,.htaccess,我使用.htaccess文件获取用户友好的URL,如: mysite/关于 我的网站/文章/一些文章 等等 一切正常,但现在我必须在.htaccess文件中添加一个到自定义404页面的重定向: mysite/error-404 出于测试目的,我这样做: ErrorDocument 404 http://mysite/error-404 它可以在本地主机和“实时”测试站点上工作 问题是,我不知道网站的url是什么,甚至不知道它是否在根文件夹或类似的子文件夹中 http://somesite/my
ErrorDocument 404 http://mysite/error-404
它可以在本地主机和“实时”测试站点上工作
问题是,我不知道网站的url是什么,甚至不知道它是否在根文件夹或类似的子文件夹中
http://somesite/mysite
如何将重定向重写到404页面以使其具有通用性?是否可以获取站点文件夹的完整url(无论是什么/mysite/)并按如下方式编写重定向:
ErrorDocument 404 {http://whatever/mysite/}error-404
您可以只使用斜杠,而不声明URL 例如:
ErrorDocument 400 /error-404
这将始终从http://domain.com/error-404
,尽管URL将保持为他们试图访问的404ing URL
唯一需要确保的是404页面位于域根目录中 我将其添加到我的.htaccess文件中,它隐藏404页面并将其重定向回域的根目录
RewriteEngine On
ErrorDocument 404 /error
RewriteRule ^error$ / [R]
关键是所有内容可能都在某个子文件夹中,而不是在域根目录中:
http://domain.com/subdomain/error-404
,所以它必须是通用的……事实上,我找到了另一种处理404错误的方法,但它似乎并不优雅。。。我在三种情况下得到404——错误的页面、页面上的错误内容或url中的斜杠。因此,我添加了一些代码来检查数据库中是否存在请求的页面或文章,如果不存在,我将重定向到自定义404页面。如果url中的斜杠添加到htaccessRewriteRule^(.*)/$index.php?page=error-404
中,那么我需要做的就是。。。是否有其他情况下,我可以得到一个404错误?