如何解决apache在https中从无www重定向到www域
编辑:
Redirect permanent "/" "https://%{HTTP_HOST}/"
实际上在第一次重定向中不起作用。它似乎起作用是因为我的CDN会自动将http重定向到https :,而不是因为我的设置。抱歉造成混乱。
我正在尝试编写Apache httpd配置文件以将所有http流量重定向到https,并且还需要将任何www域都重定向到www。
例如http://example.com http://www.example.com https://example.com
应该全部重定向到https://www.example.com
这是我所做的:
<VirtualHost ipaddress:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent "/" "https://%{HTTP_HOST}/"
</VirtualHost>
这部分有效。所有http都重定向到https。请注意,%{HTTP_HOST}已解决并替换。 现在,我无需将任何www重定向到www
<VirtualHost ipaddress:443>
SSLEngine on
ServerName www.example.com
ServerAlias example.com
<If "%{HTTP_HOST} !~ /www/">
Redirect permanent "/" "https://www.%{HTTP_HOST}/"
</If>
...
</VirtualHost>
当我访问https://example.com
时,它会重定向,但是这次重定向到
https://www.%{HTTP_HOST}/
而不是https://www.example.com/
。
现在,如果我使用Redirect permanent "/" "https://www.example.com/"
那么https://example.com
将被重定向到https://www.example.com
因此,似乎在第二个VirtualHost块中未替换%{HTTP_HOST}。
如何使其正确?
解决方法
您可以尝试使用重写规则
RewriteEngine On
RewriteCond %{HTTP_HOST} ^https://example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。