htaccess中的ErrorDocument

时间:2019-07-06 00:06:22

标签: .htaccess

我正在尝试将ErrorDocument(找不到页面)添加到我的网站。 我有errorpage.php

<?php
  http_response_code(404);
?>
...
<h1>page not found</h1>

我的.htaccess文件如下所示:

Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$  /$1.html [QSA,L]

Header always set Strict-Transport-Security "max-age=63072000;   includeSubDomains; preload"

ErrorDocument 404 http://www.example.com/errorpage.php
ErrorDocument 500 http://www.example.com/errorpage.php

如果我打开一个不存在的页面,例如:“ www.example.com/xxx”,则会重定向到“ www.example.com/errorpage.php”,但状态码为:

302 found
404 not found

这很糟糕,我只需要状态码“ 404 not found”。 为什么我会得到两个状态代码,以及从找到到未找到的重定向?

2 个答案:

答案 0 :(得分:0)

也许您的请求不是www,然后首先将302重定向到www,然后从errorpage.php获取http404状态,删除主机并检查。您也可以将这些行移动到.htaccess文件的顶部。也许有帮助

`$('#select').on('change',function(){
    $.ajax(
    /* your code here */
    );
 }).

答案 1 :(得分:0)

我必须添加另一个RewriteCond:

RewriteCond %{REQUEST_URI} .!errorpage\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$  /$1.html [QSA,L]

ErrorDocument 404 /errorpage.php
ErrorDocument 500 /errorpage.php