我一直在使用它来强制使用HTTPS:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这完全没问题。
如何修改此规则,以便它还强制域和 SSL的www.
前缀?也许它可以在上面的RewriteRule
行内完成?那将是最好的。但我不认为可以做到,因为条件仅适用于非HTTPS调用?
不幸的是,我对Apache配置及其语法的了解远低于零。
答案 0 :(得分:1)
这对你有用吗?
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这实际上更短。
RewriteCond %{HTTP_HOST} ^example\.com [NC,OR]
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]