0

私の Apache Web サーバーはすべての http トラフィックを https に書き換えますが、書き換えたくない URL (example.com/facebook/any_word) が 1 つあります。すべての http を https に書き換えてフラグ L を設定するルールの上にこのルールを配置すると、機能することがわかりました。しかし、そうではありません。私は何を間違っていますか?

.htaccess ファイル:

RewriteRule ^/facebook/(.*)?$ /index.php/$0 [PT,L] #this rule is not applied...
#...other rules which rewrites http to https....
4

2 に答える 2

1

mod_rewrite デバッグを有効にして、起こるべきだと思っていることが実際に起こっていることを確認できます。次のような内容を仮想ホスト構成に追加します。

RewriteLogLevel 8
RewriteLog /var/log/rewrite.log

この構文は Apache 2.4 で変更されたため、Apache 2.4 より前のバージョンを実行していない場合は変更が必要になる場合があることに注意してください。

于 2013-03-21T14:31:15.597 に答える
1

このようなものが動作するはずです:

RewriteCond %{REQUEST_URI}   !/facebook     [NC]
#...other rules which rewrites http to https...

RewriteRule ^/facebook/(.*)?$ /index.php/$0 [PT,L]

最後のルールが期待どおりに機能すると想定しています。

アップデート

最後のルールがテストされていない場合は、代わりに次のようなものをお勧めします。

上記のルールを次のように置き換えます。

RewriteRule ^/facebook/(.*)?$ /index.php/$0 [PT,L]

これらの2行で:

RewriteCond %{REQUEST_URI} !index\.php                [NC]
RewriteRule ^facebook/(.*)/?$ /index.php/facebook/$1 [NC,L]
于 2013-03-21T14:45:44.153 に答える