繁体   English   中英

如何使用RegEx将非www重定向到www(一个SSL子域除外)?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM