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

相關文章
相關標籤/搜索