有几个类似的问题我试图从中找出答案,但到目前为止我一直没有成功。请告知我如何始终将 http 重定向到 https(并在此过程中从主机名中删除www. )。附带说明一下,最好在主要的 Apache conf 中执行此操作,而不是.htaccess
- 但我想这不适用于大多数人。
- .htaccess 使用 SSL/HTTPS 将 www 重定向到非 www
- 将子域请求重定向到子目录 + https(使用 .htaccess)
- htaccess 重定向非 www http 和 https
更新:
我已将此片段添加到一个VirtualHost
部分:
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
...但是当我访问时它没有效果http://www.domain
(它应该重定向到https://domain
)
更新 2:
它没有效果,因为我没有使用RewriteEngine on
- 所以它现在可以工作:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
有很多解决方案:
如果您使用的是负载均衡器,则需要使用不同的条件。这适用于 AWS ELB:
两个解决方案。将它们中的任何一个添加到您的 .htaccess
我不会使用
mod_rewrite
,你可以简单地实现它mod_alias
:其中“其他站点”是您要重定向到的主机名,省略 www。您不想要的前缀。
从您的评论中,听起来您不包括 mod_rewrite: