【问题标题】:htaccess Not Contain Google Tracking Codehtaccess 不包含 Google 跟踪代码
【发布时间】:2014-11-26 02:57:05
【问题描述】:

我在 htaccess 文件中为我网站的子目录设置了移动重定向代码。它适用于所有方面,但来自 Google Maps 和 Google Adwords。我意识到跟踪已设置,这似乎导致桌面上的重定向不正确。我正在尝试为 ?gclid=XXXXXXXXX

的跟踪 url 标签添加一个否定/不包含行作为 RewriteCond

网址每次都不同,但基本上类似于 www.example.com/location/?gclid=A1B2C3D4

这就是我所拥有的。请让我知道这是否正确。

RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox"[NC,OR]
RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-"[NC,OR]
RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc"[NC,OR]
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android"[NC]
RewriteCond %{REQUEST_URI} !(gclid)[NC]
RewriteRule ^location$ http://subdomain.example.com/mobile-location [L,R=302]
RewriteRule ^location/(.*)$ http://subdomain.example.com/mobile-location [L,R=302]

【问题讨论】:

    标签: .htaccess redirect mobile


    【解决方案1】:

    gclid 是查询字符串中的一个变量。您无法通过 %{REQUEST_URI} 匹配它,因为它包含域名后面(包括斜杠)和查询字符串之前的所有内容。在http://localhost/pretty/penguins?are=pretty 中,它将与/pretty/penguins 匹配。

    您需要匹配%{QUERY_STRING}。整个事情看起来像这样:

    RewriteCond %{QUERY_STRING} !gclid [NC]
    RewriteCond %{HTTP_ACCEPT} text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie- [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android [NC]
    RewriteRule ^location$ http://subdomain.example.com/mobile-location [L,R=302]
    RewriteRule ^location/(.*)$ http://subdomain.example.com/mobile-location [L,R=302]
    

    【讨论】:

    • 所以我尝试了这行代码,它关闭了网站。不确定它的问题是什么,但正是那条线导致它下降。有什么想法吗?
    • "下去" = ?;找到您的 error_log 并查看它记录的实际错误。
    • 好的,所以代码已更正,但它仍然没有按照我希望的那样做。由于查询字符串不仅仅是 gclid,这是否意味着我们需要 gclid 之前或之后的任何内容?如果字符串是 ?gclid=A1B2C3D4 并且我们在 Cond 中只有 gclid,那么在查找所有包含 gclid 的结果时会不会产生问题?
    • 如果这是您所要求的,正则表达式可以匹配变量的一部分,所以除非您通过在某处添加 ^$ 来限制我的解决方案,否则此条件应该匹配任何请求 在查询字符串中包含字符串“gclid”。
    • 那么这段代码不起作用,gclid 标记/跟踪的页面仍在重定向移动网站。有关如何以不同方式编写此代码以使其停止将 Google 跟踪代码识别为移动设备的任何想法?
    猜你喜欢
    • 2018-09-30
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2013-08-14
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多