0

很惊讶我找不到这个问题的答案,所以请为其他人发帖并获得一些帮助。

我有一个非常繁忙和复杂的 wordpress 网站。它大量使用超级缓存。最近我意识到页面速度慢的原因是用户访问了绕过 Supercache 的页面,这是因为该站点使用了大量通过查询字符串类型 URL 来的引荐来源网址。

www.site.co.uk/page/page/?utm_source=newsletter&utm_medium=email&utm_campaign=osale_3&cid=randomstringofnonsense

由于最后一位是 20 串随机字符串,因此站点从头开始生成此 Url 并添加到缓存列表中。理想情况下,我希望他们只是被引导到正确的页面并使用与普通人相同的缓存。换句话说,杀死查询字符串并使用缓存的原始字符串:

www.site.co.uk/page/page/

这是我到目前为止所拥有的,但无法让它重定向或服从。

RewriteCond %{QUERY_STRING} ^utm_source=\*+$
RewriteRule ^$ /? [R,L]

旨在查看这是否显着提高了服务器速度,如果是,则恢复为 javascript 以从查询字符串中获取任何值。理想情况下,URL 不会改变,但会为用户提供缓存版本。

请帮忙。

在此先感谢,山姆

4

1 回答 1

0

我认为@anubhava 为我们清理了轻松的工作;-):

RewriteEngine On
RewriteCond %{QUERY_STRING} ^utm_source=
RewriteRule ^(.*)$ /$1? [R,L]

这将做:

  1. www.site.co.uk/page/page/?utm_source=newsletter&utm_medium=email&utm_campaign=osale_3&cid=randomstringofnonsense => www.site.co.uk/page/page/
  2. www.site.co.uk/page/page?utm_source=newsletter&utm_medium=email&utm_campaign=osale_3&cid=randomstringofnonsense => www.site.co.uk/page/page
  3. www.site.co.uk/?utm_source=newsletter&utm_medium=email&utm_campaign=osale_3&cid=randomstringofnonsense => www.site.co.uk/

等等。

于 2013-11-04T22:37:04.407 回答