解決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緩存