使用www从非www http重定向到https

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用www从非www http重定向到https相关的知识,希望对你有一定的参考价值。

我正在尝试将我们的旧网站从http重定向到https,同时从非www重定向到www。我们目前有很多链接,这些年来我们已经获得了非www和http版本的网站,我想减少重定向的数量,因为不想被“link-juice”稀释。我们还有来自https //非www和http // www:/的链接

目前,重定向架构如下所示:

http://domain.com/oldpage.html 301永久移动 https://domain.com/oldpage.html 301永久移动 https://www.domain.com/newpage.html 200好的

是否有一种解决方法可以减少301重定向?例如这样: http // domain.com / oldpage.html - >到https://www.domain.com/newpage.html

答案

这就是你想要的.htaccess

只有1个重定向,无论它是不安全(http),顶点(www-less)还是两者:

# canonical redirect http → https ( with optional www complection)
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(www.)?example.com [NC]
RewriteRule ^/?(.*) https://www.example.com/$1 [L,R=301]

# https:// apex →  https:// www.*
RewriteCond %{HTTP_HOST} ^(?!www.)example.com [NC]
RewriteRule ^/?(.*) https://www.example.com/$1 [L,R=301]
另一答案

是的,很容易理解在任何匹配首选形式的请求URL上运行正则表达式

https://www

像在javascript /^https://www..*$/.exec(url)中,如果这返回非null值,这意味着https&www表单的url

否则,如果其中一个vaiolats你的规则像http或非www url或所有他们解析网址并提取路径只是然后将它附加到你的完美网址

var redirectURL = "https://www.yourDomain.com"+path;

然后将重定向请求发送到这个完美的表单。

从这个要求:

http://yourDomain.com/something

重定向到新网址

https://www.yourDomain.com/something

只是在一个重定向响应中

另一答案
   NameVirtualHost *:80
   <VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   RedirectPermanent / https://www.example.com
   </VirtualHost>

   <VirtualHost *:80>
   ServerName example.net
   ServerAlias www.example.net
   DocumentRoot /var/www/html/example.net
   RedirectMatch "old-page$" "https://www.example.com/new-page”
   </VirtualHost>

   <VirtualHost *:443>
   ServerName www.example.com
   ...
   </VirtualHost>

参考:https://wiki.apache.org/httpd/RedirectSSL

以上是关于使用www从非www http重定向到https的主要内容,如果未能解决你的问题,请参考以下文章

apache从非www重定向到www

从非www重定向到www

如何在 aws s3 存储桶和云端执行从非 www 到 www 的 301 重定向

Cloudflare从非主域重定向到Github页面

Nginx 重定向(非 www 到 www)不适用于 Certbot

IIS 将 www 重定向到非 www 和 http 到 https:是不是可以仅使用一个重定向来完成?