Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/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
.htaccess 是否需要捕获查询字符串并追加_.htaccess_Redirect_Rewrite_Http Status Code 404 - Fatal编程技术网

.htaccess 是否需要捕获查询字符串并追加

.htaccess 是否需要捕获查询字符串并追加,.htaccess,redirect,rewrite,http-status-code-404,.htaccess,Redirect,Rewrite,Http Status Code 404,是否需要捕获查询字符串并将其附加到错误文档(404)中。类似于请求的页面:重定向到: 我正在使用它,它工作得很好 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ /404.php?pg-name=$1 [L,R] 但问题是它并没有将报头设置为404,而是将报头设置为302 我希望标题为404,即“HTTP/1.0 404未找到”将[L,R]更改为[L,R=404

是否需要捕获查询字符串并将其附加到错误文档(404)中。类似于请求的页面:重定向到:

我正在使用它,它工作得很好

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /404.php?pg-name=$1 [L,R]
但问题是它并没有将报头设置为404,而是将报头设置为302


我希望标题为404,即“HTTP/1.0 404未找到”

将[L,R]更改为[L,R=404]


从这里开始:

否,它仍然不会将标题状态设置为404,尝试将其切换,以便其[R=404,L,NC]。您还可以使用:header(“HTTP/1.0 404未找到”);但是,该头部分需要在PHP文件本身中,而不是在htaccess中!谢谢你的快速回复。是的,我在htaccess中切换了标志,在php文件中也设置了头。奇怪的是,在PHP文件中,头肯定是有效的,在任何输出完成之前,您需要确保它是文件中的第一件事(即使是像换行符这样的空白也会计算在内)。您是如何检查标题的?你能把你得到的信息复制粘贴到这里让我们检查一下吗?