.htaccess
に1つのドメインを除くすべてのトラフィックをhttpsにリダイレクトする書き換えルールを書き込もうとしています。次に、移動先のファイルが存在しない場合は、最後のブロックを実行してloader.php
に移動しますが、ファイルが存在する場合は移動します。ファイルが存在する場合はhtaccessルールを書き直してください。PHPファイル
は、ここで私がこれまで持っているの反復の一つです:ユーザーがkorlett.org
またはkorlett.net
またはkorelett.com
または内の任意のファイルになっている場合
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>
私は何をしようとしていることで、それはhttps://
にリダイレクトします。しかし、http://korle.tt
またはこのディレクトリを指す他のドメイン(現在は指定されていません)では、HTTPのままです。ファイルが存在しない場合、またはURLが404を返す場合
その後、その後、これを実行します。
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /loader.php [L]
長いがあるかどうかを確認するためにloader.phpするためにそれを送られていない場合は、その後
「If」は何ですか?通常、あなたはそれなしでこれを行います。 – tadman
@tadman私はそうだと思っていましたが、ファイルが404/not foundを返すかどうかを調べるよう勧めてくれました。しかし、ファイルを検証しようとすると、これは有効な構文ではない(Ifの場合)。だから私はそれが動作するかどうかは関係ありませんね。助言がありますか? – wordSmith
'RewriteCond'ディレクティブは'それ 'の一種です。他のものはちょうどここに来ています。 – tadman