Apache 有没有更聪明/更好的方法来重写HTTPS/WWW?

Apache 有没有更聪明/更好的方法来重写HTTPS/WWW?,apache,.htaccess,Apache,.htaccess,我写了一个.htaccess脚本,看起来很有效。然而,我对Apache还不熟悉,后来我常常发现,我组装的东西应该以不同的方式构造,或者具有更好的语义 我的代码的目标是确保www和HTTPS始终存在于url中。我使用302进行测试。简单地说,这个代码是不是被提升了?是否有一些显而易见的痛苦,我应该改变 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteCond %{

我写了一个
.htaccess
脚本,看起来很有效。然而,我对Apache还不熟悉,后来我常常发现,我组装的东西应该以不同的方式构造,或者具有更好的语义

我的代码的目标是确保
www
HTTPS
始终存在于url中。我使用302进行测试。简单地说,这个代码是不是被提升了?是否有一些显而易见的痛苦,我应该改变

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule .* https://www.example.com%{REQUEST_URI} [R=302,L]
</IfModule>

重新启动发动机
重写条件%{HTTPS}关闭
重写cond%{HTTP_HOST}^www\。[北卡罗来纳州]
重写规则。*https://www.example.com%{REQUEST_URI}[R=302,L]

要强制使用https和www,您可以使用:

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$
RewriteRule ^ https://www.%2%{REQUEST_URI} [NE,L,R]

这会将重定向到

。如果用户键入
example.com
而不键入其他内容,它会重写吗?