龙空技术网

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

回车技术控 146

前言:

今天看官们对“apache2显示域名”大概比较关注,咱们都想要学习一些“apache2显示域名”的相关资讯。那么小编在网上搜集了一些对于“apache2显示域名””的相关资讯,希望看官们能喜欢,大家快快来了解一下吧!

什么是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###重启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 ^.*$ {SERVER_NAME}%{REQUEST_URI} [L,R=301]###…………</IfModule>

至此,网站已可以实现全站http跳转https,包括内页。如直接访问,可跳转到。

标签: #apache2显示域名