有一些类似的问题,我试图从中找出答案,但到目前为止我一直没有成功。请告知我如何始终将 http 重定向到 https(并在此过程中从主机名中删除www.)。还有一个附带说明,最好在主 Apache conf 中执行此操作而不是.htaccess
- 但我想这不适用于大多数人。
我已将此代码段添加到一个VirtualHost
部分:
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
...但它在我访问时没有效果http://www.domain
(它应该重定向到https://domain
)
它没有效果,因为我没有使用RewriteEngine on
- 所以它现在可以工作:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
Ber*_*Ott 18
解决方法有很多:
RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://yourdomain/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您使用负载均衡器,则需要使用不同的条件。这适用于 AWS ELB:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://yourdomain.com/$1 [R=301,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我不会使用mod_rewrite
,你可以简单地通过以下方式实现它mod_alias
:
Redirect permanent / https://other-site
Run Code Online (Sandbox Code Playgroud)
其中“other-site”是您要重定向到的主机名,省略 www. 您不想要的前缀。
归档时间: |
|
查看次数: |
85912 次 |
最近记录: |