我有一个域example.com,我在.htaccess文件中添加了以下重定向代码,以重定向到https://www.example.com/,https://test.example.com/和https://www.example.com/test/
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
1)当我在浏览器example.com中加载URL时,它会被重定向到https://www.example.com
2)我在example.com中创建了一个子域文件夹'test'。因此,当我加载URL example.com/test时,它会被重定向到https://www.example.com/test/
需要以下解决方案:
1)当我加载网址test.example.com时,会将其重定向到https://www.test.example.com,但我希望将其重定向到https://test.example.com
2)当我加载网址www.example.com/test时,会将其重定向到https://www.www.example.com/test/,但我希望将其重定向到https://www.example.com/test/
3)当我加载网址www.example.com时,会将其重定向到https://www.www.example.com/,但我希望将其重定向到https://www.example.com/
有人可以帮忙吗?提前致谢
答案 0 :(得分:0)
您可以使用此规则
RewriteEngine on
#redirect subdomain to https
RewriteCond %{HTTPS}#%{HTTP_HOST} ^off#(sub\.domain\.com)$
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R]
#redirect main domain to https www
RewriteCond %{HTTPS}#%{HTTP_HOST} ^off#(?:www\.)?(example\.com)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]
在测试这些新的重定向之前清除浏览器缓存。
如果您有多个子域,则可以使用以下模式将其重定向到https:
^off#(sub\.domain\.com|sub2.example.com|sub3.example.com|other)$