1

我在域的根目录中有一个.htaccess文件和一个index.html文件。我有下面的代码在此.htaccess文件:如何通过编辑.htaccess文件获取404时返回200?

DirectorySlash Off 

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

我希望用户将看到index.html中的内容,当他们进入到一个目录URL不管这个目录URL已斜线与否。所以我有上面的代码。

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

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

谢谢!

回答

6

创建一个自定义404页面,并将其称为例如“404page.php”。请确保此页面将通过把这个顶部发送任何其他内容到浏览器之前200种状态:

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

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

+0

谢谢你的帮助!盖亚。有用。 :-)但是,如果我只通过编辑.htaccess文件就可以实现这一点,那将是更好的解决方案。我的意思是不要编辑.php文件。 – weilou

+0

这个问题是关于'.htaccess'文件的。不是关于在PHP中返回'404'。 – NHG