删除重定向htaccess上的查询字符串

时间:2013-11-18 11:44:36

标签: .htaccess mod-rewrite redirect prestashop-1.5

我无法从重定向htaccess中删除查询字符串。我已经尝试了lott和googled als for this ..但似乎没有任何工作

这是我的代码:

首先我尝试了这个,但没有奏效:

Redirect 301  /my_page.aspx?ps=22.5000&pe=44.9900 http://www.mysite.com/35-new-items

然后我尝试了:

 RewriteCond %{QUERY_STRING} (^|&)ps=
 RewriteCond %{QUERY)STRING{ (^|&)pe=4
 RewriteRule ^/?my_page\.aspx$ /35-new-items? [L,R=301]

但这又对我没有用。

然后我尝试了这个并且像往常一样这似乎也不起作用:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(?:my_page\.aspx)?\?p=1 [NC]
RewriteRule ^ /35-new-items? [R=301,L]

请帮助我!

我必须将具有不同不同查询字符串值的旧页面重定向到新页面。 旧页面在ASPX中,新页面在PrestaShop中。

所以它重定向为http://www.mysite.com/35-new-items?ps=22.5000&pe=44.9900

如何删除此部分:

 ?ps=22.5000&pe=44.9900

来自目标网址?

2 个答案:

答案 0 :(得分:0)

这会更好(在Debian / Apache2上测试):

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)(ps|pe)= [NC]
RewriteRule ^/?my_page\.aspx$ /35-new-items? [L,R=301]

答案 1 :(得分:0)

我的要求是谷歌搜索引擎优化所以我所做的是因为我的页面重定向所以我已经通过使用这个聪明的代码从当前网址中删除了我的查询字符串值

{$res=$smarty.server.REQUEST_URI|regex_replace:"~\?[^/]++~":" "} 

并使用

<link rel="canonical" href="{Tools::getCurrentUrlProtocolPrefix()}{$smarty.server.HTTP_HOST}{$res}" />

以便可以应用封装以避免重复的页面内容