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

问题描述 投票:0回答:3

我正在尝试将我们的旧网站从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

apache http redirect mod-rewrite https
3个回答
1
投票

这就是你想要的.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]

0
投票

是的,很容易理解在任何匹配首选形式的请求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

只是在一个重定向响应中


0
投票
   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.soinside.com 2019 - 2024. All rights reserved.