我有多个域被设置为redirect(301)到我的主域。 不过,我知道这些领域中的一些在search引擎优化方面几乎没有任何价值,我想摆脱它们。 但我的一个担心是,在这些领域下可能存在反向链接。
我检查了谷歌分析,并没有出现这些域名,但我决定确认他们会注册,如果他们使用。 不幸的是,在testing中,我的Apache 301redirect似乎没有保留引用的URL。 我知道这在很大程度上取决于客户,但似乎共识是大多数时候这是保留。
这是我的redirect:
## Redirect non www to www RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]
引荐者与redirect不一样。
如果你打电话给一个页面,例如http://www.example.com并且在页面上有一个或多个资源,比如图片,CSS和JavaScript文件,浏览器也会得到它们。 如果浏览器这样做,他发送原始页面,在我们的情况下,这是http://www.example.com作为服务器的引用。 即使这是最好的所有现代浏览器这样做。 如果原始页面是https URL,但资源是http则只有一个例外。
现在redirect是完全不同的东西。 如果您要请求服务器,并且服务器以301redirect进行响应,则浏览器知道该位置已经改变并因此请求新的位置。
但是,如果一个301是一个资源(图像,CSS,JS等)引用通常会再次发送到新的位置。 https和http (见上面)也适用于这种情况。
如果用户在浏览器中input了一个URL(例如http://example.com ,那么浏览器将不会被发送,并且该URL将被redirect到http://www.example.com ,因为http://example.com不是引用页面,而是刚被redirect到新的位置。
现在到可能的解决scheme:你可以添加一些UTM参数到你的redirecthttps://en.wikipedia.org/wiki/UTM_parameters 。 这将由谷歌分析。 所以你看看是否用这个UTM参数调用了一个页面,这意味着它被一个redirect调用。 你可以用这个参数统计页面被调用的次数,或者什么来源是最常用的等等。当然,如果有人禁用JS或者有任何反跟踪插件,你将不会在统计中看到这个调用。
## Redirect non www to www RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*)$ https://www.example.com$1?utm_source=%{HTTP_HOST}/%{REQUEST_URI}%?{QUERY_STRING}&utm_campaign=redirect [R=301,QSA,L]