gpt4 book ai didi

apache - notfound.html 未找到

转载 作者:行者123 更新时间:2023-12-02 08:15:26 26 4
gpt4 key购买 nike

基于各种示例(例如 here ),我非常确定我的设置正确:

1) 我在网站的根目录中创建了一个文件“notfound.html”

2) 我正在运行 xampp,即。 Apache Web 服务器,因此根据我读过的内容,当在浏览器中键入不存在的页面(例如 www.mysite.com/NotAValidPage)时,Apache 会在站点的根目录中查找 notfound.html。 html 并使用 notfound.html 作为 404 错误消息

这是我尝试过的方法以及每次尝试的结果:

1test)我把自己的notfound.html放在我网站的根目录下,然后进入一个不存在的页面

1result) 我的 notfound.html 没有被使用,而是来自(我猜)我的网络服务器的默认 404 错误,出现并显示:

 Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try
again.

If you think this is a server error, please contact the webmaster.

Error 404
localhost
2/14/2012 9:11:29 AM
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1

2test) 接下来,我将一个 .htaccess 文件添加到我网站的根文件夹中,并在此 .htaccess 文件中添加了以下行:

    ErrorDocument 404 /notfound.html

然后我在浏览器中输入了一个不存在的页面。

2result) 我仍然看到默认的 404 错误页面,而不是我的 notfound.html,只是这次默认错误页面显示:

 Not Found

The requested URL /mysite.com/indsadfaex.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying
to use an ErrorDocument to handle the request.

3test) 然后,我修改了 .htaccess 文件,删除了自定义 404 错误页面文件名前面的“/”,如下所示: 错误文档404 notfound.html

3result) 现在,当我输入站点名称后跟不存在的页面时,我不再看到默认的 404 错误页面 - 浏览器窗口完全空白,除了以下内容左上角:

    notfound.html

不知道在这里做什么,似乎我错过了一些微妙之处——任何想法都非常感激。

编辑:我怀疑这是否重要,但我的 .htaccess 文件中还有另外 2 个语句用于重定向情况:

  RewriteEngine on
RewriteRule ^([^/\.]+)$ theHandlerPage.php?theArgumentPassedIn=$1 [L]

这里的正则表达式只是说“转到输入的 URL 的最末尾并匹配连续的字符串,前提是没有“/”或“.”。位于该连续的字符流中,然后通过 $_GET[theArgumentPassedIn'] 将它们传递到文件 theHandlerPage.php。

我认为这个重写规则不会在这里发挥作用,因为它不会与错误的页面名称(例如 mysite/badpage.html )匹配,因为“.”在 badpage.html 中。

<小时/>

好吧——我发现了一些意想不到的事情。

1) 我将 notfound.html 错误文件移动到我网站的父目录 - 而之前该文件位于 c:/xampp/htdocs/mysite/notfound。 html,我现在已将此文件移动到 c:/xampp/htdocs/notfound.html

2) 然后我在 .htaccess 文件中使用 ErrorDocument 404/notfound.html,该文件位于 c:/xampp/htdocs/mysite/.htaccess

现在,当我在浏览器栏中输入 mysite/aBadfilename.html 时,我的 404 notfound.html 显示正常。

但是这是行不通的。我无法将 notfound.html 驻留在我的网站的父目录中,因为我开发的每个网站都需要不同的 notfound.html。我必须能够将我的网站的 notfound.html 放在其文件夹空间中,即。在 c:/xampp/htdocs/mysite 内。

因为c:/xampp/htdocs是服务器上所有网站的根文件夹。

为什么我的网络服务器在 c:/xampp/htdocs 根目录而不是 c:/xampp/中查找我网站的 notfound.html htdocs/mysite?毕竟,我输入 mysite/badfile.html,因此 Web 服务器(在我看来)应该理解 notfound.html 位于 c:/xampp/htdocs/mysite 中文件夹空间。

最佳答案

您使用虚拟主机吗?
如果是这样,我认为有问题,请打开您的 httpd-vhosts.conf 并查找 DocumentRoot C:/xampp/htdocs/bla 所在的行/blah/mysite/ 并写下主机的完整路径,如果它不起作用,请使用目录路径。希望对您有所帮助。

关于apache - notfound.html 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9281381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com