非www重定向到www并强制https ,仅在http://www.example.com
上返回 302 temporary redirect 。
根据协议和主机名,请参阅下面的Status Codes - 测试我的网站http://www.mypetcerts.com
example.conf
<VirtualHost *:80>
ServerName www.example.com
# server config
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
RedirectMatch permanent ^/?(.*) https://www.mypetcerts.com/$1
</VirtualHost>
我想这是因为我在没有https重定向的情况下点击上面的VirtualHost 1,因为规范名称是正确的,并且无需在ServerName example.com上点击VirtualHost 2。任何人都有这种风格的答案设置?我也在亚马逊ELB上运行。
注意:这是Apache2.2我无法利用Apache2.4 IF指令:(
我认为重定向到www然后到https是可能的,但从我的理解执行多重定向(例如到www然后到https)对SEO来说不是很好。
我需要所有可能的结果才能使用https://www.example.com转到301 permanent redirect。
答案 0 :(得分:1)
解决!使用重定向和重写的组合,我可以从HTTP获得单个301永久重定向,非www到HTTPS www。我使用下面显示的RewriteCond仅在HTTP上处理我的后端监听器(例如:80)。
见这里:AWS Support
<VirtualHost *:80>
ServerName www.example.com
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R=301,L]
# additional optional server config
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
RedirectMatch permanent ^/?(.*) https://www.example.com/$1
</VirtualHost>