Drupal 8的https域名重定向优化301重定向

hrs 提交于 2022/05/28 - 07:09 , 周六

域名重定向优化是什么:

首先说明一下,这里说的域名重定向优化,是指把指向同一网站的的根域名dwoke.com和二级域名www.dwoke.com统一重定向到其中的一个网址上。

域名重定向优化的原因:

1. 我们的域名解析设置,一定要考虑到访客不同的浏览习惯。比如访问百度网站,有的人直接输入baidu.com,有的人习惯输入www.baidu.com,这样都能打开百度网站。来个访客不容易,我们一定要保证无论输入哪种形式的网址都能正确打开我们的网站。要做到这一点也很简单,至少解析根域名和www域名到主机IP就可以了。

2.既然访客都能访问我们的网站了,为什么还要重定向呢?只是为了样式统一起来好看吗?其实最主要的原因是为了更好地让搜索引擎收录,提高网页在搜索引擎里的排名。江湖传言,同一个网页,如果有不同的url网址的话,是会分散该页面的权重的。因此应该使用重定向把所有网址url都统一到http://www.dwoke.com或者http://dwoke.com的样式,至于选择哪一种就看个人喜好了。

Drupal 8如何进行域名重定向:

Drupal 8的.htaccess文件里已经分享了重定向的方法,只是用符号#给注释掉了,你可以根据需要把代码前面的#符号去掉,保存就可以生效了。

举个例子,如果你行网想把http://dwoke.com定向到http://www.dwoke.com,修改代码如下:

  # To redirect all users to access the site WITH the 'www.' prefix,
  # (http://example.com/foo will be redirected to http://www.example.com/foo)
  # uncomment the following:
     RewriteCond %{HTTP_HOST} .
     RewriteCond %{HTTP_HOST} !^www\. [NC]
     RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


     如果你行网想把http://www.dwoke.com重定向到http://dwoke.com,则需要修改代码如下:

 

  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/foo will be redirected to http://example.com/foo)
  # uncomment the following:
     RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
     RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]


这是现成的方案,直接用就可以了。那么你行网的问题来了:现在流量劫持这么厉害,你行网都已经申请了数字证书,启用https安全访问了,怎么样把所有访客都请到更安全的https渠道里来呢?没有搜到中文的解决方案,用万能的Google查到了stackoverflow有个讨论的帖子,试验了几次,终于解决问题了。方案如下:

Drupal 8域名重定向到https://www.dwoke.com的方案

根目录的.htaccess文件代码:

  RewriteBase /
  RewriteCond %{HTTPS} !on [OR]
  RewriteCond %{HTTP_HOST} !^www\.
  RewriteRule ^ https://www.dwoke.com%{REQUEST_URI} [NE,R=301,L]


用了这个方案,可以把http://dwoke.com, http://www.dwoke.com, https://dwoke.com这三种网址全部重定向到https://www.dwoke.com上来。

说明:你行网主机采用阿里云ECS服务器,centos 7系统,httpd 2.4版本,一般Apache服务器应该都适用,但没有测试过。

标签