将HTTP迁移到除1个目录之外的HTTPS

时间:2019-02-03 14:22:11

标签: .htaccess mod-rewrite

除了一个目录外,我想将网站从HTTP迁移到HTTPS。 它不起作用....首先,可以对此进行编码吗?

#https exept directory dir2 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !dir2[NC] 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

1 个答案:

答案 0 :(得分:0)

RewriteCond %{REQUEST_URI} !dir2[NC] 

flags 参数之前缺少空格定界符,因此它永远不会与目标目录匹配。它应显示为:

RewriteCond %{REQUEST_URI} !dir2 [NC]
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

您还缺少模式周围的两个空格。因此,它将再也不会匹配任何内容。因此,应显示为:

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

空格是Apache配置文件中的分隔符。


但是,这可以改进,因为如果您只想排除单个目录,则不需要其他条件。您应该改用RewriteRule 模式

RewriteCond %{HTTPS} off 
RewriteRule !^dir2 https://%{HTTP_HOST}%{REQUEST_URI} [NC,L,R=301]