0
我一直在試圖從HTTP重寫一個子目錄到HTTPS無濟於事。我已經看過其他職位,並試圖實施這些解決方案:重寫子目錄爲https
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} subdirectory
RewriteRule ^(.*)$ https://www.exmaple.com/subdirectory/$1 [R,L]
也
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(subdirectory/.*)$ https://www.example.com/$1 [R=301,L]
,並把它們無論是在根目錄.htaccess
文件或Plesk的Apache和Ngnix設置。但每當我輸入
http://www.example.com/subdirectory/some.html
我總是會得到
https://www.example.com/subdirectory//subdirectory/some.html
這當然是找不到404的。任何援助表示讚賞。
您是否同時使用兩者?你的第一條規則有一個問題(正則表達式中的捕獲組已經包含子目錄,所以不需要添加它,加上'%{REQUEST_URI}'的'RewriteCond''應該檢查'^ /子目錄'),但第二個看起來很好只要你的RewriteBase是默認的('/') – Charles
確保你清除了你的瀏覽器緩存。正如Charles提到的,你的第二個規則塊看起來不錯。但是,如果您以前嘗試過錯誤的301重定向,那麼瀏覽器將難以緩存這些重定向。 – MrWhite
@Charles我只在一個地方做過。你能把它當作答案嗎?我不確定我是否完全瞭解了第一條規則。 – Jack