当请求网址 /page1.php?abc
时,我希望将其重定向到 /page1.php?xyz
。
具体来说,这就是我想告诉客户的事情:
HTTP/1.1 301 Moved Permanently
Location: /page1.php?xyz
我已经尝试过Apache RedirectMatch指令,但它似乎不支持查询字符串。
是否有另一个指令支持带有查询字符串的URL的HTTP重定向?
目前我正在使用PHP's header function完成此任务,但这感觉就像是一个权宜之计,所以我正在寻找一个Apache解决方案。
答案 0 :(得分: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;
}
答案 1 :(得分:0)
我会创建一个自己生成的PHP文件,不知道可以做到这一点的Apache模块/解决方案。