1

/page1.php?abc请求 URL 时,我希望将其重定向到/page1.php?xyz

具体来说,这就是我想告诉客户的:

HTTP/1.1 301 Moved Permanently
Location: /page1.php?xyz

我试过 Apache RedirectMatch指令,但它似乎不支持查询字符串。

是否有另一个指令支持带有查询字符串的 URL 的 HTTP 重定向?

目前我正在使用PHP 的标头函数来完成此操作,但这感觉像是权宜之计,因此我正在寻找 Apache 解决方案。

4

2 回答 2

3

你可以用mod_rewrite这个。如果这个模块可用,你使用这些规则(必须放在里面/.htaccess):

RewriteEngine on
RewriteCond %{QUERY_STRING} ="abc"
RewriteRule ^page1\.php$ /page1.php?xyz [R=301,L]

还有一个仅限 PHP 的解决方案:

if ($_SERVER["QUERY_STRING"] == "abc") {
    header("Location: /page1.php?xyz", true, 301);
    die;
}
于 2013-01-26T07:45:54.877 回答
0

我会创建一个自己生成的 PHP 文件,但不知道可以做到这一点的 Apache 模块/解决方案。

http://php.net/manual/en/function.header.php

于 2013-01-26T06:27:18.870 回答