我正在尝试将旧网站从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 OK
是否有一种解决方法可以减少301重定向? 例如:http // domain.com / oldpage.html - >到https://www.domain.com/newpage.html
答案 0 :(得分: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]
答案 1 :(得分:0)
就像在javascript /^https:\/\/www\..*$/.exec(url)
中一样
如果返回非null值
这意味着https& www表格
否则,如果其中一个人对您的规则进行了修改,例如http或非www网址或所有这些规则 解析网址并提取路径,然后将其附加到您的完美网址
var redirectURL = "https://www.yourDomain.com"+path;
然后将重定向请求发送到这个完美的表单。
来自此请求:
重定向到新网址
只需一次重定向回复
答案 2 :(得分: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>