私はDrupal 7を使用しています。ユーザーのログインページは/ user / loginにあるため、デフォルトのログインパスです。そのページをSSLを使用して暗号化して、人々がパスワードを平文で送信しないようにする必要があります。
Apacheを構成して、サイトをHTTPまたはHTTPSのいずれかでナビゲートできるようにしました。ただし、/ user / login以外のすべてのリクエストがHTTP経由で行われるように、いくつかの書き換えルールを実装したいと考えています。これは、INFINITELYがより高速になり、ユーザーエクスペリエンスが向上するためです。Drupal Coreのサポートにバグがあるため、現時点ではSecure Pagesの使用を拒否し、Coreに手動でパッチを適用しません。つまり、Apacheの書き換えルールを使用する必要があります。
私には次のルールがあります。
<VirtualHost *:80>
...
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/user/login$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [L,R]
...
</VirtualHost>
<VirtualHost *:443>
...
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^/user/login$
RewriteRule ^/(.*) http://%{HTTP_HOST}/$1 [L,R]
...
</VirtualHost>
今、私にはそれは理にかなっていますが、Drupalはそれが好きではないようです。
何が起こっているのですか?
- HTTPを使用してサイト内を/ user / login以外のページに移動すると、正常に動作します。
- HTTP経由で/ user / loginに移動すると、フロントページにリダイレクトされます。
- HTTPS経由で任意のページに移動すると、HTTP経由でフロントページにリダイレクトされます。