小编Kon*_*rth的帖子

理解 apache 2.4 mod_proxy_fcgi 和 htaccess 中的 RewriteRules

我们最近将我们的一台 Web 服务器切换到 apache 2.4 并通过 php-fpm 和 mod_proxy_fcgi 运行 PHP。大多数一切都运行良好,但有一个我还不明白的问题。我们的一个网站正在运行 WordPress,它在其 .htaccess 文件中提供了一个很好的重写规则列表。并且似乎这些与 vhost 设置中的 ProxyPass 指令不能很好地配合使用。

我们的 vhost 包含以下配置:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.2:9126/<path>/$1
Run Code Online (Sandbox Code Playgroud)

这在大多数情况下都有效。

现在,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]
Run Code Online (Sandbox Code Playgroud)

由于该站点是子目录中的多博客,我读到 URL /blogname/wp-admin/load-styles.php?xxxx 应该重写为 wp-admin/load-styles.php?xxx (第二个重写规则)。但是查看mod_proxy的日志,其实传递的请求是/blogname/wp-admin/load-styles.php。

我读到这里是因为存在一个优先级问题——ProxyPass 规则在所有 RewriteRules 都被解决之前触发。

我受阻 - 可能是什么原因?

mod-rewrite mod-proxy apache-2.4

10
推荐指数
1
解决办法
1万
查看次数

Postfix 不会发送到只有“A”记录的域

我们有一个非常奇怪的情况,我不太明白。我们的 postfix 服务器通常可以很好地传送电子邮件,但是对于许多域,存在一个问题。这些域很奇特,因为它们在 DNS 中只有一个记录而没有 MX 记录。

我得到的错误是:

host or domain name not found. Name service error for name=<DOMAIN> type=MX: Unknown error 0>

奇怪的是,这是真的——因为 MX 查找确实失败了。虽然有那个 A 记录,但后缀似乎很高兴地忽略了。

我们目前正在运行来自 pkgsrc 的 postfix 2.9.6。

domain-name-system postfix

2
推荐指数
1
解决办法
1648
查看次数