Ubuntu及Apache2下如何301重定向https?

什么是301重定向?

页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

在我们网站建设中,时常会遇到需要网页重定向的情况:像网站调整,改变了网站的目录结构,网页被移到一个新地址。或者网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这些情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失。又比如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点。

当我们申请SSL证书构建https后,会出现http及https并存的情况,在Apache2虚拟目录配置文件中添加Redirect permanent并不能很好地解决全站http跳转https的问题.

这时,我们可以通过添加修改网站根目录下的.htaccess文件实现全站301重定向到https,而不止是主页。

开启Apache2重写模块rewrite:

###管理员身份运行
sudo a2enmod rewrite
service apache2 restart

修改虚似目录配置文件,在<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 On
RewriteBase /
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。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值