首先,对不起我的英语......我希望你能理解我的问题:)
我公司制作了一个电子邮件广告系列,其中包含指向我们网站的链接。此网址包含跟踪广告系列的Google跟踪代码。
不幸的是,网址错误:
http://www.mysite.fr/category/mypage.html/?utm_source=source&utm_medium=medium&utm_campaign=campaign
但是“mypage.html”和跟踪代码之间存在斜线,指向不合适的页面。
我尝试使用这些规则来重定向网址,而不向所有人发送新电子邮件,但它们不起作用:
RewriteRule ^/category/mypage\.html/\?utm_source\=source\&utm_medium\=medium\&utm_capaign\=campaign$ http://www.mysite.fr/category/mypage.html?utm_source=source&utm_medium=medium&utm_campaign=campaign [R=301,L]
或者:
RedirectPermanent /category/mypage.html/ http://www.mysite.fr/category/mypage.html?utm_source=source&utm_medium=medium&utm_campaign=campaign
我不知道如何编写规则。有人能帮帮我吗?
答案 0 :(得分:0)
您的RewriteRule
出了点问题。如果您将其放在.htaccess文件中,则需要删除正则表达式中的前导斜杠(前缀),因为apache会在将其放入.htaccess文件中的规则之前将其从URI中删除。其次,您无法匹配RewriteRule
中正则表达式中的查询字符串(从?开始的东西)。
不确定为什么RedirectPermanent
无效。除了查询字符串如果将其遗漏后自动附加的事实,这看起来很好。我认为这就是你想要的,所以删除目标中的查询字符串:
RedirectMatch 301 ^/category/mypage.html/$ http://www.mysite.fr/category/mypage.html