Apache VirtualHosts と Mod_Rewrite は初めてですが、アイデアはわかります。
ここでいくつかのスレッドを読み、それらすべてをフォローして試してみましたが、まだ探している結果が得られません。
私の目標:
- /feed に入るフィードを除いて、すべての着信要求を強制的に HTTPS にします
これのポイントは、feedburner の場合であるため、https 経由で Web ページを提供できますが、feedburner は wordpress からのネイティブ フィードを引き続き処理できます。
私が試している現在の書き換えルールは次のとおりです。
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/feed
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteLog /xxxx/xxxx/logs/rewrite_log
RewriteLogLevel 3
<Directory />
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</Directory>
www.mydomain.net/feed と入力し、URL が www.mydomain.net になると、上記のようにホームページに強制的に戻されます。私が期待するように、それはすべてを HTTPS に強制しています。
次の書き換えルールを使用すると、逆の動作を得ることができます(/feed で HTTPS を強制し、それ以外では HTTP を強制します)。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/feed
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteLog /xxx/xxx/logs/rewrite_log
RewriteLogLevel 3
<Directory />
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</Directory>
しかし、このようにそのステートメントを逆にしようとすると、機能せず、https を /feed に強制します。
私のルールに違反しているワードプレスの何かがありますか? Directory/ block が何をしているのか 100% 確実ではありませんが、それは wordpress によって入れられたと思います。