首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >强制网站到HTTPS,除了一些页面和Facebook爬虫

强制网站到HTTPS,除了一些页面和Facebook爬虫
EN

Stack Overflow用户
提问于 2017-12-31 12:04:44
回答 2查看 130关注 0票数 1

有一些类似的问题,但没有一个真正涵盖了我需要做的一切,我有点头脑发热!我有一个现有的wordpress网站。我希望强制主页和任何新的子页到HTTPS,但强制现有的子页面(其中大约20个)到HTTP。原因是这些子页面有很长的Facebook注释线程,我不想丢失,而标准的解决方案只保留喜欢/共享,而不是评论。为了保留赞/共享,Facebook爬虫需要能够访问主页的HTTP版本。

因此,我需要计算htaccess的代码来启用:1. Force站点通常是HTTPS 2。强制某些页面为HTTP 3。允许Facebook爬虫访问主页的HTTP版本(仅)。

任何帮助都非常感谢。编辑添加的代码,我想我会尝试,但没有:

代码语言:javascript
运行
复制
RewriteEngine On 
# Go to https for all but existing subpages
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^ page1 | page2 | page3 $ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

# Go to http for existing subpages 
RewriteCond %{SERVER_PORT} !80 
RewriteCond %{REQUEST_URI} ^ page1 | page2 | page3 $ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R,L]

不知道在哪里放置Facebook爬虫异常,也不知道我是否有正确的语法排除页面,记住这是一个wordpress站点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-31 16:33:56

您可以检查facebook爬虫用户代理,哪个在这里列出

代码语言:javascript
运行
复制
# Go to http for home page if Facebook Crawler
RewriteCond %{SERVER_PORT} !80
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit|Facebot
RewriteRule ^$ http://www.example.com/ [R,L]

RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit|Facebot
RewriteRule ^$ - [L]

# Go to https for all but existing subpages
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/(page1|page2|page3)$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

# Go to http for existing subpages 
RewriteCond %{SERVER_PORT} !80
RewriteCond %{REQUEST_URI} ^/(page1|page2|page3)$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R,L]
票数 0
EN

Stack Overflow用户

发布于 2018-01-01 01:42:54

谢谢,本,这几乎是完美的。我需要做的唯一改变就是向我想要重定向的每个页面名称添加一个斜杠,因为我得到了404个没有它们的错误。我想是因为wordpress URL格式的缘故。因此,完整的工作代码是:

代码语言:javascript
运行
复制
# Go to http for home page if Facebook Crawler
RewriteCond %{SERVER_PORT} !80
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit|Facebot
RewriteRule ^$ http://www.example.com/ [R,L]

RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit|Facebot
RewriteRule ^$ - [L]

# Go to https for all but existing subpages
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/(page1/|page2/|page3/)$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

# Go to http for existing subpages 
RewriteCond %{SERVER_PORT} !80
RewriteCond %{REQUEST_URI} ^/(page1/|page2/|page3/)$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R,L]

我还在主页的首页添加了一个og:url标记,指示Facebook爬行HTTP版本,维护原始的like和共享计数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48042280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档