Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当站点url未知时,重定向到带有.htaccess的自定义404错误页_.htaccess - Fatal编程技术网

当站点url未知时,重定向到带有.htaccess的自定义404错误页

当站点url未知时,重定向到带有.htaccess的自定义404错误页,.htaccess,.htaccess,我使用.htaccess文件获取用户友好的URL,如: mysite/关于 我的网站/文章/一些文章 等等 一切正常,但现在我必须在.htaccess文件中添加一个到自定义404页面的重定向: mysite/error-404 出于测试目的,我这样做: ErrorDocument 404 http://mysite/error-404 它可以在本地主机和“实时”测试站点上工作 问题是,我不知道网站的url是什么,甚至不知道它是否在根文件夹或类似的子文件夹中 http://somesite/my

我使用.htaccess文件获取用户友好的URL,如:

mysite/关于

我的网站/文章/一些文章 等等

一切正常,但现在我必须在.htaccess文件中添加一个到自定义404页面的重定向: mysite/error-404

出于测试目的,我这样做:

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中的斜杠添加到htaccess
RewriteRule^(.*)/$index.php?page=error-404
中,那么我需要做的就是。。。是否有其他情况下,我可以得到一个404错误?