我有一个与Godaddy.com共享的托管帐户,我用它来托管五个不同的网站(site1.com, site2.com…site5.com)。我想在/目录中放置一个。htaccess文件,使所有五个不同的网站重定向到每个网站的非www和ssl版本。
现在我在我的。htaccess文件中有以下内容:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site1.com
RewriteRule (.*) https://site1.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.site2.com
RewriteRule (.*) https://site2.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.site3.com
RewriteRule (.*) https://site3.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.site4.com
RewriteRule (.*) https://site4.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.site5.com
RewriteRule (.*) https://site5.com/$1 [R=301,L]
设置站点的目录结构,使site1的index.html位于/public_html/index.html
另外四个站点的索引文件位于:/public_html/网站[#]/index . html有四个不同的目录[site#] (site2/site3/site4/site5/)
当我在浏览器中输入网址2-4的www版本时,服务器自动重定向到https版本:
网站# .com/other_sites/site #。com
我希望它如果每个网站重定向到ssl,即使访问者不进入网站的www版本。我知道我需要一个额外的RewriteCond和RewriteRule,但不知道使用什么代码。
我只是学习RegEx和服务器配置,所以任何帮助将非常感激。
您可以使用:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.+) [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [NE,L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]