【问题标题】:Is there any to to capture query string and append是否有任何捕获查询字符串和追加
【发布时间】:2014-07-02 11:42:33
【问题描述】:

是否可以捕获查询字符串并将其附加到错误文档 (404)。类似于请求页面:http://www.xyx.com/sdsdsd 重定向到:http://www.xyx.com/404.php?pg-name=sdsdsd

我正在使用它并且它工作正常

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /404.php?pg-name=$1 [L,R]

但问题是它没有将标头设置为 404,而是将标头设置为 302。

我希望标头为 404,即“HTTP/1.0 404 Not Found”

【问题讨论】:

    标签: .htaccess redirect rewrite http-status-code-404


    【解决方案1】:

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

    从这里:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_r

    【讨论】:

    • 不,它仍然没有将标题状态设置为 404
    • 尝试切换它,使其 [R=404,L,NC]。您还可以使用以下命令在 PHP 页面上强制使用 404 标头: header("HTTP/1.0 404 Not Found");
    • 该标题部分需要在您的 PHP 文件本身中,而不是 htaccess!
    • 谢谢您的快速回复。是的,我做了同样的事情在 htaccess 中切换标志,还在 php 文件中设置标题。没有任何效果。
    • 奇怪,头文件肯定应该在 PHP 文件中工作,你需要确保它在文件中的第一件事之前完成任何输出(即使是像换行符这样的空格也会计算在内)。你如何检查标题?您可以复制并粘贴您返回的信息供我们检查吗?
    猜你喜欢
    • 1970-01-01
    • 2012-02-05
    • 2020-11-09
    • 2019-08-07
    • 2011-04-28
    • 2012-05-28
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    相关资源
    最近更新 更多