解决apache服务器不能重定向,不能强制跳转https而且.htaccess失效等问题html
在centos系统下一键安装apache服务后,在网站根目录下创建.htaccess文件,想经过.htaccess文件实现apache的重定向。可是发现不管怎么更换.htaccess的代码,都不能重定向。这时候就须要检查.htaccess是否被关闭。web
vim /etc/httpd/conf/httpd.conf
AllowOverride Node #338行附近 #修改成 AllowOverrlid All #打开.htaccess
.htaccess打开后,仍是不能访问能够检查文件名称是否正确。apache
AccessFileName .htaccess #409行附近,检查AccessFileName后面的文件名是否正确,可自定义
service https restart #重启服务器
要想实现强制跳转https,通常是经过301重定向实现的。针对服务器管理员和网站管理员有如下不一样的方法。vim
#在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
#代码以下: 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
参考:百度百科浏览器
文章仅表明做者我的观点,转载请注明出处!
文章地址:https://www.orbpi.cn/article/apachebunengchongdingxiangbunengqiangzhitiaozhuanhttpshtaccessshixiaojiejuebanfa.html缓存