除了一个目录外,我想将网站从HTTP迁移到HTTPS。 它不起作用....首先,可以对此进行编码吗?
#https exept directory dir2
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !dir2[NC]
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
答案 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]