如何将查询字符串附加到错误文档

时间:2014-04-30 08:36:39

标签: .htaccess mod-rewrite url-rewriting http-status-code-404 url-redirection

是否有捕获查询字符串并将其附加到错误文档(404)的任何内容。类似的东西:

请求页面:

http://www.example.com/sdsdsd

重定向到:

http://www.example.com/404.php?pg-name=sdsdsd

1 个答案:

答案 0 :(得分:0)

不是在htaccess配置中使用ErrorDocument,而是强制实现重定向到error.php,如下所示:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /error.php?pg-name=%{REQUEST_FILENAME} [L]

来源:How to get `$_POST` query when 404 redirected through .htaccess?

在error.php页面中,您可以检查是否为error.php提供了pg-name参数:

echo '<pre>';
print_r($_GET);
echo '</pre>';

如果你这样称呼你的页面:http://domain1.com/asdasdasd(假设找不到链接),error.php的输出将如下所示:

Array
( 
    [pg-name] => /path_to/public_html/asdasdasd
)

然后你可以到达请求的字符串“asdasdasd”。