我正在嘗試在我的.htaccess
中編寫一個重寫規則,將除一個域之外的所有流量重定向到https。然後,如果它正在嘗試去的文件不存在,則運行後面的最後一個塊,轉到loader.php
,但是如果文件存在,請轉到該文件。htaccess重寫規則,如果文件存在,否則轉到PHP文件
這裏是我到目前爲止迭代之一:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^(www\.)?(korle\.tt) [NC]
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
<If "-f %{DOCUMENT_ROOT} . '/'">
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /loader.php [L]
</If>
<Else>
RewriteEngine On
RewriteRule^/404.html [R=404,L]
</Else>
我所試圖做的,如果用戶去korlett.org
或korlett.net
或korelett.com
或內的任何文件,它重定向到https://
。但不是http://korle.tt
或指向此目錄的其他域(現在未指定),它們將保留HTTP。
然後在此之後,如果該文件不存在,或者如果該URL返回一個404,然後運行這個命令:
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /loader.php [L]
什麼是
tadman
@tadman我這麼認爲,但有人建議我這樣做來檢查文件是否返回404 /未找到。但是,當我嘗試驗證文件時,它說這不是有效的語法(在If)。所以我想這不重要,如果它的作品。有什麼建議麼? – wordSmith
'RewriteCond'指令本身就是一種'if'。其他的東西就在這裏。 – tadman