从非www的http重定向到https与www
我试图重定向我们的旧网站从http到https和从非www到www在同一时间。我们目前有很多链接,这些年来我们通过网站的非www版本&获得了很多链接,并且我想减少重定向量,因为不想被“链接果汁”所稀释。我们也有从https //非www链接和http // WWW:/从非www的http重定向到https与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
是,很容易理解在匹配首选形式是
该请求的任何URL 运行的正则表达式像在JavaScript /^https:\/\/www\..*$/.exec(url)
如果返回非零值 这就是意味着URL folow中的HTTPS & WWW形式
否则,如果他们中的一个vaiolats你的规则,如HTTP或非WWW网址或全部 解析URL,并提取路径才将其附加到你的完美网址
var redirectURL = "https://www.yourDomain.com"+path;
,然后发送重定向请求到这个完美的形式。
从这个请求:
重定向到新的URL
只是一个重定向响应
非常感谢你们俩。这也可以从另一个.domain工作吗?我们有另一个使用另一个域名结尾的组级别网站。我们希望通过一次重定向将某些页面传递到当前网站。 这是否意味着我们可以在组网站上使用这样的设置。 ServerName domain.a ServerAlias www.domain.a 重定向永久/ https://www.domain.b 然后在站点b上指定组url。用一个简单的。 重定向301/old-page/https://www.domain.b/new-page/ – pukander
更简单的方法是:在.a域中,您想要重定向的已知页面只需提取路径并将其附加到完美前缀“https://www.domain.b”+路径并要求重定向到这个完美的URL,即使您可以将路径更改为.b服务器中的相应路径(如果它不同 –
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>
这是你想要在你.htaccess
只有1个重定向什么,如果不管它是不安全的(HTTP),顶(WWW-以下)或两者:
# 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]
当然,这是完全可能的。 – ceejayoz