2011-07-13 36 views
0

我试图迫使旧网址转到新的URL和我的代码似乎没有任何效果正确的htaccess重写

RewriteCond %{QUERY_STRING} ^index2\.php?page=shop\.product_details&\.tabs\.tpl&product=310&category=71&Itemid=2$ 

RewriteRule .* /hunting/back-packs/multi-packs/black-2.5-pack.html [R=301,L] 

我的旧网址是

www.mywebsite.com/index2.php?page=shop.product_details&.tabs.tpl&product=310&category=71&Itemid=2 

和我的新一个是

www.mywebsite.com/hunting/back-packs/multi-packs/black-2.5-pack.html 

我的代码不会破坏任何东西,但无法正常工作或

在此先感谢

+0

对不起,谢谢。我已经删除了逃生字符 – KodrKid

回答

0

据我所知,你想重定向(301永久重定向),这样的URL将在浏览器中更改。这会为这个URL ONLY/index2.php?page=shop.product_details&.tabs.tpl&product=310&category=71&Itemid=2工作:

RewriteCond %{QUERY_STRING} =page=shop.product_details&.tabs.tpl&product=310&category=71&Itemid=2 [NC] 
RewriteRule ^index2\.php$ http://www.mywebsite.com/hunting/back-packs/multi-packs/black-2.5-pack.html [R=301,L] 

如果你想内部重定向(改写),然后使用这些行:

RewriteCond %{QUERY_STRING} =page=shop.product_details&.tabs.tpl&product=310&category=71&Itemid=2 [NC] 
RewriteRule ^index2\.php$ /hunting/back-packs/multi-packs/black-2.5-pack.html [L] 

请注意:

  1. 您需要将这些行按照正确的顺序排列(规则顺序重要事项)否则(如果您将其放在末尾),另一条规则会将其重写为其他网址。
  2. 这需要放在网站根文件夹中的.htaccess文件中。对于任何其他位置,您可能需要修改一下。
+0

完美工作!谢谢LazyOne – KodrKid

+0

重定向工作与一个小奇怪。重定向将用户带到:http://www.mywebsite.com/hunting/back-packs/multi-packs/black-2.5-pack.html?page=shop.product_details&.tabs.tpl&product=310&category=71&Itemid=2这是两个网址的拼接。这是预期的还是有办法去除这种情况。 – KodrKid

+0

你在说301重定向(第一条规则)吗?无论如何 - 不应该 - 在URL末尾添加'?'('.../black-2.5-pack.html?')。如果仍然没有,那么我必须再次研究它。 – LazyOne