【问题标题】:How can I return 200 when I get 404 by editing .htaccess file?当我通过编辑 .htaccess 文件得到 404 时,如何返回 200?
【发布时间】:2012-08-30 18:33:54
【问题描述】:

我在域的根目录中有一个 .htaccess 文件和一个 index.html 文件。我在这个 .htaccess 文件中有以下代码:

DirectorySlash Off

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])?$ /index.html [L]

我希望用户在访问目录 URL 时能够看到 index.html 中的内容,无论该目录 URL 是否带有斜杠。所以我有上面的代码。

但是我有一个问题。当我访问一个不存在的目录时。我得到 404。这不是我想要的。我希望用户在访问目录 URL 时总是能得到 200 并看到 index.html 中的内容。如何通过在 .htaccess 文件中编辑上述代码来解决此问题?

顺便说一句。请不要将用户重定向到 index.html 文件。

谢谢!

【问题讨论】:

    标签: .htaccess url-rewriting http-status-code-404 http-status-codes http-status-code-200


    【解决方案1】:

    创建一个自定义 404 页面并将其命名为例如“404page.php”。确保此页面在向浏览器发送任何其他内容之前发送 200 状态,方法是将其放在顶部:

    <?php
    header("Status: 200 OK");
    ?>
    

    然后在你的htaccess中输入ErrorDocument 404 /404page.php

    【讨论】:

    • 感谢您的帮助!盖亚。有用。 :-) 但是,如果我可以通过仅编辑 .htaccess 文件来实现这一点,那将是一个更好的解决方案。我的意思是不要编辑 .php 文件。
    • 这个问题是关于.htaccess文件的。不是在 PHP 中返回 404
    猜你喜欢
    • 2018-06-28
    • 1970-01-01
    • 2018-05-24
    • 2017-10-30
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多