我们有一个使用各种子域的Opencart网上商店设置。我正在尝试配置我们的.htaccess文件来执行以下操作,但无法完全克服终点线。
我们的网站以这种方式设置:
主域名
ourdomain.com
子域名x 10
sub1.ourdomain.com
sub2.ourdomain.com
sub3.outdomain.com
以下是必须发生的事情:
主域名或子域名的http版本的所有访问者都必须重定向到https。
任何子域名的访问者都必须重定向到https://subdomain.ourdomain.com但没有www。
https://ourdomain.com的访问者必须重定向到https://www.ourdomain.com。
基本上我总是需要将主要域名的访问者定向到www。版本以确保CSS文件正确呈现。如果www,图标和图形将丢失。不见了。
我目前已将其配置为将所有访问者重定向到https但我不知道如何应用www。仅限主域。
希望一切都有意义。
我目前的代码:
RewriteCond %{HTTP_HOST} ^ourdomain.com$
RewriteRule (.*) http://www.ourdomain.com/$1 [R=301,L]
答案 0 :(得分:1)
您可以使用以下规则:
RewriteEngine on
#Redirect "http://sub.example.com" to "https://sub.example.com"#
RewriteCond %{HTTP_HOST} ^((?!www\.).+)\.example\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
#Redirect "http://example.com" or "http://www.example.com" to "https://www.example.com"#
RewriteCond %{HTTP_HOST} ^example\.com$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]
在上面的RewriteConds中将 example.com 替换为 yourdomain.com 。