Wir haben kürzlich einen unserer Webserver auf Apache 2.4 umgestellt und PHP über php-fpm und mod_proxy_fcgi ausgeführt. Fast alles funktioniert ganz gut, aber es gibt ein Problem, das ich noch nicht verstehe. Auf einer unserer Websites wird WordPress ausgeführt, das eine gute Liste von Umschreiberegeln in der .htaccess-Datei enthält. Und es scheint, dass diese mit der ProxyPass-Direktive im vhost-Setup nicht so gut funktionieren.
Unser vhost enthält folgende Konfiguration:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.2:9126/<path>/$1
Dies funktioniert in den meisten Fällen.
Die htaccess-Datei führt nun unter anderem Folgendes aus:
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]
Da es sich bei der Site um ein Multiblog in Unterverzeichnissen handelt, habe ich gelesen, dass die URL /blogname/wp-admin/load-styles.php?xxxx als wp-admin / load-styles.php? Xxx (die zweite Umschreiberegel) umgeschrieben werden sollte. Wenn Sie sich jedoch das mod_proxy-Protokoll ansehen, lautet die tatsächlich übergebene Anforderung /blogname/wp-admin/load-styles.php.
Ich habe dies gelesen, da es ein Vorrangproblem gibt - die ProxyPass-Regel wird ausgelöst, bevor alle RewriteRules bearbeitet wurden.
Ich bin geschwächt - was kann die Ursache sein?
RewriteRule
mit dem [P]
Flag wechseln ?