0

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 によって入れられたと思います。

4

1 に答える 1

1

これを試して:

RewriteEngine On

#check if https is off, force it on for all except /feed
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/feed [NC]
RewriteCond %{REQUEST_FILENAME} !index\.php$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

#check if https is on, turn off for /feed
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/feed/(.*) [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/feed/%1 [R=301,L]

RewriteLog /xxx/xxx/logs/rewrite_log
RewriteLogLevel 3

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/server-status$ [NC]
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
于 2014-01-22T23:27:50.070 に答える