仅重定向到裸域
Posted
技术标签:
【中文标题】仅重定向到裸域【英文标题】:redirection to naked domain only 【发布时间】:2021-03-03 23:20:30 【问题描述】:在我的 Apache 2.4 网络服务器上,我配置了一个虚拟主机来将 http 上的所有请求重定向到 https,它工作正常。我想通过添加以下规则来改进它:
如果用户请求http://www.domain.example重定向到https://domain.example
我当前的虚拟主机定义(适用部分)如下:
RewriteEngine on
RewriteCond %SERVER_NAME =www.domain.example [OR]
RewriteCond %SERVER_NAME =domain.example
RewriteCond %HTTP_HOST !=mail.domain.example
RewriteRule ^ https://%SERVER_NAME%REQUEST_URI [END,NE,R=permanent]
我知道我必须更改 SERVER_NAME
部分,大概我必须放在那里
RewriteRule ^ https://domain.example%REQUEST_URI [END,NE,R=permanent]
但这是一个生产环境,我无法对此进行测试。
【问题讨论】:
此重定向是否有任何错误? 没有。但它会将domain 重定向到domain,而我现在希望它重定向到domain 【参考方案1】:您可以使用它来强制 https
和 non-www
:
RewriteEngine on
RewriteCond %SERVER_NAME ^www\.domain\.example$ [NC,OR]
RewriteCond %HTTPS off
RewriteCond %SERVER_NAME ^(www\.)?(.+)$
RewriteRule ^ https://%1%REQUEST_URI [L,R=301]
在第一个条件中将www.domain.example
替换为您的真实域名,并确保在测试此新规则之前重新启动您的网络服务器。
【讨论】:
以上是关于仅重定向到裸域的主要内容,如果未能解决你的问题,请参考以下文章
Cloudfront 使用 ssl 将 www 重定向到裸域 [关闭]