2012-04-19 90 views
2

我想重定向的index.php?行动工作的URL =此& ID = 1的index.php?行动=这个& ID = 2htaccess的重定向不带参数

我尝试下面的代码在我的。 htaccess但它没有帮助

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

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

+0

根据文档URL应该以引导斜杠开始(正如Shaikh已经提到的那样)。不幸的是,'Redirect'指令不适用于查询字符串参数 - 只有路径部分(在你的情况下它将是'index.php')。你唯一的希望 - 就是使用** mod_rewrite **。请检查您的服务器是否存在/启用 - 如果是,那么我可以在这里帮助您。 – LazyOne 2012-04-19 18:07:25

+0

我会尝试重写 – rzr 2012-04-21 09:34:26

+0

看到我的答案 - 抱歉拖延 - 当我有机会时。 – LazyOne 2012-04-22 23:58:55

回答

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,并且不会有其他网址(就像您在问题中提问的那样)。

1

只是第一网址前加斜杠状

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

也没有工作:( – rzr 2012-04-19 16:34:33

2

你可以尝试只添加这一点,你想重定向

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

不,我不希望元刷新。这是有点不可能在这里我的情况。 – rzr 2012-04-19 16:34:26