一年前,我设法弄清楚要添加到.htaccess中的内容,以在我的网站上强制使用https://。我以为它在起作用。 (绿色代码)
但是,上周,我注意到某些页面仍以http://
出现我有个人“修复”它。他们添加了蓝色代码。而且,是的,所有页面现在都显示为https://。但是,原始代码中我们不想强制使用的四个URL现在被强制使用https://
是否有一种简单的方法来修改蓝色代码,以使这四个文件夹不强制使用https // ?? [
我尝试将四行RewriteCond {REQUEST_URI}从绿色部分移到蓝色部分,但这无济于事。
而且,我现在可以安全地删除原始代码了,对吧?
答案 0 :(得分:1)
RewriteCond
规则作为一个连词(一组and
表达式)处理,直到RewriteRule
指令为止。
RewriteCond
指令定义规则条件。一个或多个RewriteCond
可以位于RewriteRule
指令之前。然后,仅当URI的当前状态都匹配其模式时才使用以下规则,如果满足这些条件,则和。
因此,需要将它们放置在RewriteRule之前:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond ...
RewriteCond ...
RewriteCond ...
RewriteCond ...
RewriteRule ^(.*)$ https://example.com%{REQUEST_URI} [E=UPGRADE,L,R=301]