apache不能重定向,不能強制跳轉https,-htaccess失效解決辦法


解決apache服務器不能重定向,不能強制跳轉https並且.htaccess失效等問題

apache不能重定向,.htaccess被關閉

在centos系統下一鍵安裝apache服務后,在網站根目錄下建立.htaccess文件,想通過.htaccess文件實現apache的重定向。但是發現無論怎么更換.htaccess的代碼,都不能重定向。這時候就需要檢查.htaccess是否被關閉。

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

.htaccess打開后,還是不能訪問可以檢查文件名稱是否正確。

AccessFileName .htaccess        #409行附近,檢查AccessFileName后面的文件名是否正確,可自定義
  1. 修改完成后,需要重啟服務器
service https restart       #重啟服務器 
實現強制跳轉https

要想實現強制跳轉https,一般是通過301重定向實現的。針對服務器管理員和網站管理員有以下不同的方法。

  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://你的網址/,如果發生改變就說明跳轉成功,否則失敗。有時候不能跳轉可能不是服務器的配置問題,有可能是本地瀏覽器的緩存問題。例如谷歌瀏覽器就有緩存機制,所以在驗證的時候可以先清除緩存在進行效驗。

END

參考:百度百科

文章僅代表作者個人觀點,轉載請注明出處!
文章地址:https://www.orbpi.cn/article/apachebunengchongdingxiangbunengqiangzhitiaozhuanhttpshtaccessshixiaojiejuebanfa.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM