.htaccess配置:非www转www,排除特定子域名与CloudFront域名
精准重定向指定域名至www子域名的.htaccess配置
问题分析
原规则会对所有非www开头的HTTPS域名执行重定向,导致cdn.mydomain.com.au和mycloudfrontdomain.com.au被错误重定向到www.cdn.mydomain.com.au和www.mycloudfrontdomain.com.au,不符合需求。我们需要缩小匹配范围,仅对mydomain.com.au执行重定向。
修改后的配置
<IfModule mod_rewrite.c> RewriteEngine On # 仅将HTTPS协议下的mydomain.com.au重定向到www.mydomain.com.au RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^mydomain\.com\.au$ [NC] RewriteRule ^(.*)$ https://www.mydomain.com.au/$1 [L,R=301] </IfModule>
配置说明
RewriteCond %{HTTPS} on:仅在HTTPS连接下触发重定向(若需同时支持HTTP→HTTPS+www,可移除该条件并补充HTTP转HTTPS规则)RewriteCond %{HTTP_HOST} ^mydomain\.com\.au$ [NC]:精确匹配主域名,[NC]标记确保不区分大小写(避免MYDOMAIN.COM.AU这类大小写变体无法匹配)RewriteRule ^(.*)$ https://www.mydomain.com.au/$1 [L,R=301]:- 直接指定目标域名
www.mydomain.com.au,避免错误拼接其他子域名 [L]表示这是最后执行的规则,防止后续规则干扰[R=301]表示永久重定向,利于搜索引擎优化(SEO)
- 直接指定目标域名
额外说明
如果需要同时处理HTTP协议的重定向(将http://mydomain.com.au重定向到https://www.mydomain.com.au),可添加以下规则:
# HTTP转HTTPS+www RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^mydomain\.com\.au$ [NC] RewriteRule ^(.*)$ https://www.mydomain.com.au/$1 [L,R=301]
内容的提问来源于stack exchange,提问作者Simon Rivers
相关产品推荐
相关产品推荐

