htaccess重定向不使用带参数的URL

时间:2012-04-19 16:05:34

标签: .htaccess redirect

我想将index.php?action = this& id = 1重定向到index.php?action = this& id = 2

我在.htaccess中尝试了下面的代码,但它没有帮助

redirect 301 index.php?action=this&id=1 http://mysite.com/index.php?action=this&id=2

我在这里做错了什么?什么可能是一种解决方法?

3 个答案:

答案 0 :(得分:2)

您可以尝试在要重定向的页面上添加此内容

<meta HTTP-EQUIV="REFRESH" content="0; url=index?action=this&id=2">

答案 1 :(得分:2)

为了匹配特定的查询字符串,拥有以使用 mod_rewrite 。请检查您的主机上是否已安装/允许它。在这种情况下的规则将是这样的:

# most likely be required for rewrite rules to function properly
Options +FollowSymLinks +SymLinksIfOwnerMatch

# Activate Rewrite Engine
RewriteEngine On
RewriteBase /

# actual rule
RewriteCond %{QUERY_STRING} ^action=this&id=1 [NC]
RewriteRule ^index\.php$ /index.php?action=this&id=2 [R=301,L]

这需要放在网站根文件夹中的.htaccess中。如果放在其他任何地方,可能需要进行一些小改动。

此规则只会将/index.php?action=this&id=1重定向到/index.php?action=this&id=2而不会重定向到其他网址(就像您在问题中提到的那样)。

答案 2 :(得分:1)

只需在第一个网址之前添加正斜杠

Redirect 301 /index.php?action=this&id=1 http://mysite.com/index.php?action=this&id=2