从HTTP切换到HTTPS,丢失了所有Facebook“喜欢”

时间:2013-10-02 13:35:47

标签: regex apache .htaccess mod-rewrite https

切换到https://后,我们所有的文章都失去了他们的Facebook“赞”数。所以我想为我们网站的内容区域禁用https,该区域位于/content.php(文章的内容是content.php?212-My-Article)

我现在的.htaccess:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

我需要添加什么,以便将所有content.php *流量重定向到http(非安全),即使他们输入“https”

谢谢!

4 个答案:

答案 0 :(得分:0)

您可以使用此代码:

RewriteEngine on

# uri is not /content.php
RewriteCond %{REQUEST_URI} !^/content\.php$ [NC]
# https is off
RewriteCond %{HTTPS} off
# redirec to https site
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 1 :(得分:0)

我找到了解决这个问题的方法,但没有使content.php变得不安全。 Facebook“赞”HTML代码如下所示:

<fb:like href="https://www.mysite.com/{vb:raw relpath}" font="tahoma" layout="standard" show_faces="false" width="260" action="like" colorscheme="light"></fb:like>

我使用vBulletin。我把它改成了http,现在一切都很好!

答案 2 :(得分:0)

您需要对第一条规则进行更改才能排除content.php。您只需为content.php添加一条与您的其他规则完全相反的规则。如果您的规则执行了您希望他们执行的操作以将其转换为永久重定向,则可以添加[R=301]标记。永久重定向由浏览器缓存,将减少对服务器的请求量。您不需要为第一个规则使用捕获组,因此我只使用了^语法,该语法匹配每个请求。

RewriteEngine on

#Turn the entire site into https, except for content.php
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/content\.php$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

#Use http instead for this url
RewriteCond %{HTTPS} on
RewriteCond ^content\.php$ http://%{HTTP_HOST}%{REQUEST_URI}

答案 3 :(得分:0)

有一个非常简单的解决方案:使用og:url元标记:

<meta property="og:url" content="http://example.com/old-url" />

您可以在常见问题解答部分了解更多相关信息:https://developers.facebook.com/docs/plugins/faqs

该部分名为:如何将网页移至其他网址?