.htaccess SSL重定向的重写引擎

.htaccess SSL重定向的重写引擎,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,my.htaccess的相关设置粘贴在下面。很好,除了。。。如果我键入,它不会重定向到。另一方面,如果我键入,它将正确重定向到。我想两者都重定向到。非常感谢您对正则表达式(我的一个盲点)进行必要的调整 RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/www%{REQUEST_URI} [L,R=301] 如果您使用的是apache,则不推荐使用.htaccess文件进行重定向。(

my.htaccess的相关设置粘贴在下面。很好,除了。。。如果我键入,它不会重定向到。另一方面,如果我键入,它将正确重定向到。我想两者都重定向到。非常感谢您对正则表达式(我的一个盲点)进行必要的调整

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/www%{REQUEST_URI} [L,R=301]

如果您使用的是apache,则不推荐使用.htaccess文件进行重定向。(您可以看看。他们建议直接在主服务器文件中使用
重定向
指令。您可以这样做:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect / https://www.example.com/www/
</VirtualHost>

<VirtualHost *:443>
    ServerName www.example.com
    Redirect / https://www.example.com/www/
    # ... SSL configuration goes here
</VirtualHost>

很遗憾,我在此服务器上没有root访问权限,因此.htaccess是我唯一的选项。不带
RewriteCond%{HTTPS}的规则off
会导致重定向循环,因为它会将
https
URL重定向回
https
。在这种情况下,RewriteCond很重要。非常感谢。工作非常完美。现在我看到它了。被正则表达式恐惧蒙蔽了!
RewriteEngine on
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_URI}/ www
RewriteRule ^(.*) %{HTTP_HOST}%/www/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) %{HTTP_HOST}%/www/%{REQUEST_URI} [R=302,NC]