搜 索

在apache服务器环境中常见的几种http跳转到https的设置

编辑:QTOOL.NET日期:2019-08-31187

在制作网站的时候,如果开启了apache中ssl,我们会发现可以通过浏览器输入http或者https访问到网站中去,但对于引擎来说相当于重复的网页,对用户体验有很大的影响,这时候我们就需要想办法将http自动跳转到https上,那么怎样才能实现呢?
我们可以在网站的根目录中的.htaccess伪静态文件中添加我们的设置代码即可
如果没有该文件我们可以通过创建一个空白的文本文档,将类型选择为所有类型,文件名称改为.htaccess保存到网站根目录中.
   
代码如下:
   
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://xxxxx.com/$1 [R,L]
 
打开方式为文本,然后保存修改的.htaccess文件重启apache即可生效。
   
子目录跳转代码如下:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} xxxxx
RewriteRule ^(.*)$ https://xxxxx.com/xxxxx [R,L]
   
这里的子目录为xxxxx,我们根据需求自由替换为自己需要的
   
但如果我们需要将不带www的顶级域名跳转到常见的www二级域名又该怎样实现呢
代码如下
RewriteEngine On
RewriteCond %{HTTP_HOST} ^xxx.com [NC]
RewriteRule ^(.*)$ https://xxx.com/$1 [L,R=301]
 
将带www的域名跳转到没有www的顶级域名
RewriteEngine On
RewriteCond %{HTTP_HOST} !^xxx.com$ [NC]
RewriteRule ^(.*)$ https://xxx.com/$1 [L,R=301]
 
需要注意的是.htaccess只有在rewrite模块开启的状态下才能生效
如果没有开启需要手动去httpd.conf中去掉
#LoadModule rewrite_module modules/mod_rewrite.so
前面的#号
以及AllowOverride None
改为
AllowOverride all
保存修改重启服务器即可生效
重写规则代码也可以卸载apache配置文件httpd.conf中<IfModule mod_rewrite.c></IfModule>标签中去.

TAG标签:apache
此文章由QTOOL.NET编辑
最新文章

热门标签