在我们网站培植中,时常会碰着须要网页重定向的情形:像网站调度,改变了网站的目录构造,网页被移到一个新地址。或者网页扩展名改变,如因运用须要把.php改成.Html或.shtml,在这些情形下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面缺点信息,访问流量白白损失。又比如某些注册了多个域名的网站,也须要通过重定向让访问这些域名的用户自动跳转到主站点。
当我们申请SSL证书构建https后,会涌现http及https并存的情形,在Apache2虚拟目录配置文件中添加Redirect permanent并不能很好地办理全站http跳转https的问题。
这时,我们可以通过添加修正网站根目录下的.htaccess文件实现全站301重定向到https,而不止是主页。

开启Apache2重写模块rewrite:
###管理员身份运行sudo a2enmod rewrite###重启apache2做事service apache2 restart
修正虚拟目录配置文件,在<Directory /网站目录>与</Directory>之间添加AllowOverride All,如有AllowOverride None,改为AllowOverride All。然后实行service apache2 reload,重载一次配置。
<Directory /网站目录> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from All Require all granted</Directory>
添加或修正网站根目录下的.htaccess文件,插入修正如下代码:
<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{SERVER_PORT} !^443$RewriteRule ^.$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]###…………</IfModule>
至此,网站已可以实现全站http跳转https,包括内页。如直接访问http://www.himstudy.net/category/linux,可跳转到https://www.himstudy.net/category/linux。