![](/img/trans.png)
[英]Redirect all non-www to www for both http and https with .htaccess
[英]Redirect all http AND https non-www URLS to https://www.xyz.com via htaccess
由于太长而且复杂的原因(它涉及多层公司繁文缛节导致其他人不购买我要求的通配符SSL证书),我必须设置一个域以将所有请求重定向到https:// www .xyz.com - 使用www
子域的安全协议。
所以: http://xyz.com , http://www.xyz.com和https://xyz.com都应该重定向到https://www.xyz.com 。
我的.htaccess-fu充其量是弱的,我似乎无法让它发挥作用。 注意:如果有所不同,托管在Media Temple上。
到目前为止,我的.htaccess文件看起来像这样:
RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://www.xyz.com/$1 [R,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
http://xyz.com和http://www.xyz.com都重定向到https://www.xyz.com ,所以你好。 但是, https://xyz.com 不会重定向到https://www.xyz.com ,因此会抛出一个安全警告页面:
这可能不是您要找的网站!
您试图访问xyz.com ,但实际上您已经到达了一个服务器,将自己标识为www.xyz.com 。 这可能是由服务器上的配置错误或更严重的问题引起的。 您网络上的攻击者可能会试图让您访问xyz.com的假(且可能有害)版本。
您不应该继续,特别是如果您之前从未见过此网站的此警告。
让我超越这一个最后一个驼峰的任何帮助将非常感谢!
这是非常可能的。 使用以下代码。 这对我有用。
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}$1
如果未来的任何人(HELLO PEOPLE OF THE FUTURE)偶然发现了这个问题,我会问同样的问题并在服务器故障处得到解答。
短版:不可能。
长版: https : //serverfault.com/questions/523199/redirect-all-http-and-https-non-www-urls-to-https-www-example-com-via-htaccess
即使这个问题很老。
如果发现它搞砸了完全相同的问题。 在此处提供的代码后没有帮助。 我试过试过。
这个对我有用:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301,L]
修复了没有任何循环或其他错误的问题。 也许它会帮助别人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.