3
htaccessのApache 2.4 mod_proxy_fcgiとRewriteRulesを理解する
最近、Webサーバーの1つをApache 2.4に切り替え、php-fpmおよびmod_proxy_fcgiを介してPHPを実行しました。ほとんどすべてが非常にうまく機能していますが、まだ理解していない問題が1つあります。私たちのサイトの1つはWordPressを実行しています。WordPressは、.htaccessファイルに書き換えルールの優れたリストを提供しています。そして、それらはvhostセットアップのProxyPassディレクティブではうまく機能しないようです。 私たちの仮想ホストには次の設定が含まれています: ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.2:9126/<path>/$1 これはほとんどの場合に機能します。 htaccessファイルは、特に次のことを行います。 RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] サイトはサブディレクトリ内のマルチブログなので、URL /blogname/wp-admin/load-styles.php?xxxxをwp-admin / load-styles.php?xxx(2番目の書き換えルール)に書き換える必要があることを読みました。しかし、mod_proxyログを見ると、実際に渡される要求は/blogname/wp-admin/load-styles.phpです。 優先順位の問題があるため、これを読みました。すべてのRewriteRulesが完了する前に、ProxyPassルールが起動します。 私は困惑しています-原因は何ですか?