有一些类似的问题,但没有一个真正涵盖了我需要做的一切,我有点头脑发热!我有一个现有的wordpress网站。我希望强制主页和任何新的子页到HTTPS,但强制现有的子页面(其中大约20个)到HTTP。原因是这些子页面有很长的Facebook注释线程,我不想丢失,而标准的解决方案只保留喜欢/共享,而不是评论。为了保留赞/共享,Facebook爬虫需要能够访问主页的HTTP版本。
因此,我需要计算htaccess的代码来启用:1. Force站点通常是HTTPS 2。强制某些页面为HTTP 3。允许Facebook爬虫访问主页的HTTP版本(仅)。
任何帮助都非常感谢。编辑添加的代码,我想我会尝试,但没有:
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站点。
发布于 2017-12-31 16:33:56
您可以检查facebook爬虫用户代理,哪个在这里列出。
# 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]
发布于 2018-01-01 01:42:54
谢谢,本,这几乎是完美的。我需要做的唯一改变就是向我想要重定向的每个页面名称添加一个斜杠,因为我得到了404个没有它们的错误。我想是因为wordpress URL格式的缘故。因此,完整的工作代码是:
# 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和共享计数。
https://stackoverflow.com/questions/48042280
复制相似问题