apache不能重定向,不能强制跳转https,-htaccess失效解决办法

解决apache服务器不能重定向,不能强制跳转https而且.htaccess失效等问题html

apache不能重定向,.htaccess被关闭

在centos系统下一键安装apache服务后,在网站根目录下创建.htaccess文件,想经过.htaccess文件实现apache的重定向。可是发现不管怎么更换.htaccess的代码,都不能重定向。这时候就须要检查.htaccess是否被关闭。web

  1. 打开apache的配置文件
vim /etc/httpd/conf/httpd.conf
  1. 检查配置文件
AllowOverride Node      #338行附近
#修改成
AllowOverrlid All       #打开.htaccess

.htaccess打开后,仍是不能访问能够检查文件名称是否正确。apache

AccessFileName .htaccess        #409行附近,检查AccessFileName后面的文件名是否正确,可自定义
  1. 修改完成后,须要重启服务器
service https restart       #重启服务器
实现强制跳转https

要想实现强制跳转https,通常是经过301重定向实现的。针对服务器管理员和网站管理员有如下不一样的方法。vim

  1. 在配置文件中增长跳转代码
#在apache配置文件中增长下面代码
<VirtualHost *:80>
    ServerAdmin ASorb
    DocumentRoot /var/www/html/wordpress        #网站目录
    ServerName www.orbpi.cn         #修改成本身的域名
 
    RewriteEngine on
    RewriteCond   %{HTTPS} !=on
    RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>
#添加后须要重启服务器
service httpd restart
  1. .htaccess文件实现(使用前请按照上述方法肯定.htsccess是否处于打开状态)
    在网站根目录下创建.htaccess文件,将下面代码写入.htsccess文件中。( 重要提示:必须将代码放到.htaccess文件内容的最前面,以保证重定向优先权。)
#代码以下:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.orbpi.cn/$1 [R,L]
#或者
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.orbpi.cn/$1 [R=301,L]
#又或者
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

#注意:若是是在子目录,能够用
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} subfolder
RewriteRule ^(.*)$ https://www.orbpi.cn/subfolder [R,L]
效验是否成功跳转

检验是否可以重定向最简单的方法就是经过浏览器的访问,首先在浏览器中访问http://你的网址/,等待响应后,看网址是否变成https://你的网址/,若是发生改变就说明跳转成功,不然失败。有时候不能跳转可能不是服务器的配置问题,有多是本地浏览器的缓存问题。例如谷歌浏览器就有缓存机制,因此在验证的时候能够先清除缓存在进行效验。centos

END

参考:百度百科浏览器

文章仅表明做者我的观点,转载请注明出处!
文章地址:https://www.orbpi.cn/article/apachebunengchongdingxiangbunengqiangzhitiaozhuanhttpshtaccessshixiaojiejuebanfa.html缓存

相关文章
相关标签/搜索