Apache HTACCESS使用HTTPS重定向添加WWW

Apache HTACCESS使用HTTPS重定向添加WWW,apache,.htaccess,mod-rewrite,redirect,url-rewriting,Apache,.htaccess,Mod Rewrite,Redirect,Url Rewriting,目前我的htaccess代码是 #add www RewriteCond %{HTTP_HOST} ^example\.com$ [NC] RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] #send all traffic to https RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 当输入以下URL时,此操作有效 1

目前我的htaccess代码是

#add www
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]


#send all traffic to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
当输入以下URL时,此操作有效

1. https://example.com -> https://www.example.com 2. http://example.com -> https://www.example.com 3. http://www.example.com -> https://www.example.com 4. https://example.com -> https://www.example.com 5. https://example.com/somepage -> https://www.example.com/somepage 6. http://www.example.com/somepage -> https://www.example.com/somepage 1.https://example.com -> https://www.example.com 2.http://example.com -> https://www.example.com 3.http://www.example.com -> https://www.example.com 4.https://example.com -> https://www.example.com 5.https://example.com/somepage -> https://www.example.com/somepage 6.http://www.example.com/somepage -> https://www.example.com/somepage 但当试图访问某个页面时https和www都不存在时,它就不起作用了,而是重定向到奇怪的url

7. http://example.com/somepage -> https://www.example.com/https://example.com/somepage 7.http://example.com/somepage -> https://www.example.com/https://example.com/somepage
用此代码替换当前代码

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
注意:可能您必须清除浏览器的缓存才能看到它在
http://example.com/somepage

如果您键入(或将paste example.com复制到打开到其他https地址的选项卡),则该选项无效,以下是正确答案: