[英]How do I use RegEx to redirect non www to www with an exception for one SSL subdomain?
我绝对不是RegEx的专家,但是我正在工作的网站上已有以下htaccess规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [R=301,L]
如何保留此规则,但添加一个例外,该例外会阻止secure.domain.com重定向到www.secure.domain.com,并且还会在secure.domain.com域名上强制使用SSL?
将一个额外的RewriteCond
指令添加到上述规则集中,以排除secure
域,这与排除www
子域的方式相同。 RewriteCond
指令隐式地与:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^secure\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
在每个目录的.htaccess文件中,您需要在替换$1
之前添加斜杠。 由于目录前缀已从捕获的模式中删除。 如果这是直接在您的服务器配置中,那么您将不需要此。
如果需要,以上条件可以合并为一个:
RewriteCond %{HTTP_HOST} !^(www|secure)\. [NC]
然后,要在secure
域上强制使用SSL,请添加以下内容:
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^secure\.
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.