代码之家  ›  专栏  ›  技术社区  ›  Ben Muircroft

.htaccess重定向404,但请记住作为url变量的错误

  •  1
  • Ben Muircroft  · 技术社区  · 7 年前

    我的htaccess文件为一行

    ErrorDocument 404 https://example.com/folder/404.php?url=%{HTTP_REFERER}

    如果我去 https://example.com/folder/derp.php

    从字面上讲,我需要:

    https://example.com/folder/404.php?url=%

    鉴于我应该:

    https://example.com/folder/404.php?url=https://example.com/folder/derp.php

    为什么是 %{HTTP_REFERER}


    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://www.example.com/folder/page.php.*
    RewriteRule .* https://example.com/folder/404.php?url=%{HTTP_REFERER}
    

    已尝试确保HTTP\U REFERER为空

    1 回复  |  直到 7 年前
        1
  •  2
  •   anubhava    7 年前

    %{HTTP_REFERER} mod_rewrite 无法在中使用的变量 ErrorDocument

    您必须使用mod_重写规则,而不是 错误文档 %{HTTP\u REFERER}

    另一种选择是不使用 %{HTTP\u REFERER} 与使用略有不同 指令如下:

    ErrorDocument 404 /folder/404.php
    

    并使用以下方法获取原始404导致的URI:

    $_SERVER["REQUEST_URI"]