2014-02-11 21 views
1

我有设在这里网站:https://www.virginiaseo.org力HTTPS对整个网站的内容加,但允许HTTP数项

我使用WordPress的插件,它会强制所有内容都必须通过HTTPS。如果没有这个插件,我会得到一个小小的黄色混合内容符号,这是不太理想的。这个插件强制每个包括管理员的页面都在HTTPS上。

这里是插件页面:http://wordpress.org/plugins/wordpress-https/

我也用的.htaccess规则,包括一个强制HTTPS。这里是规则:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.virginiaseo.org/$1 [R=301,L] 
</IfModule> 

这一切都进展顺利,但一对夫妇的资源,我不能得到通过HTTP这是由第三方抓取工具和应用程序所需。一个最好的例子是:robots.txt

如何让robots.txt通过http访问,而不是搞乱网站上的其他内容。

此外,插件的HTTPS配置小于素数,但它似乎是在我的整个站点上强制HTTPS的唯一方法。我关心重复的内容问题,并且同时在http上提供。我很乐意提供有关我的设置的任何建议,并提前致谢!

+0

'的RewriteCond%{} REQUEST_FILENAME robots.txt' –

+1

我会建议使用302,当你测试你的规则,只能切换到301次你确定它一切正常。 301是一个永久重定向,它可能会被浏览器记住,因此不会反映出新的配置尝试。您在浏览器中看到的内容可能会正常,但不一定适用于新用户。 – Bruno

回答

1

你可以尝试这样的规则:

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !/(robots\.txt|favicon.ico) [NC] 
RewriteRule ^(.*)$ https://www.virginiaseo.org/$1 [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteRule ^(robots\.txt|favicon.ico)$ http://www.virginiaseo.org/$1 [R=301,L] 
+0

我会继续测试这个,但是从所有的初始测试来看,这都是完美的,正是我所期待的。非常感谢你! – ChristopherDill

+0

@anubhava我如何根据GET参数做这件事情?说“?ssl = off”我想加载http://如果这个参数被设置,否则强制https://在所有站点的url上。 – Rao

+0

@Rao:我无法根据评论编辑答案。但是,请尝试:在上面第2行的位置重写密码%{THE_REQUEST}'\?ssl = off'。 – anubhava

相关问题