3
了解htaccess中的Apache 2.4 mod_proxy_fcgi和RewriteRules
我们最近将其中一台Web服务器切换为apache 2.4,并通过php-fpm和mod_proxy_fcgi运行PHP。大多数事情都运行良好,但是有一个我还不了解的问题。我们的网站之一正在运行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(第二个重写规则)。但是查看mod_proxy日志,实际上传递的请求是/blogname/wp-admin/load-styles.php。 我读此书是因为存在优先级问题– ProxyPass规则在所有RewriteRules处理完毕之前就触发了。 我受阻-可能是什么原因?