1

情况:我正在使用 Apache 2.2 和 PHP-FPM(mod_fastcgi,PHP 5.4.37)运行服务器。我需要在内部将完整的 URL (如http://dev2.example.com/at/en重写为http://dev2-at.example.com/en ) 。两个 ServerAliases 都在同一个 vhost 上运行(所以,不需要 mod_proxy 吗?)。对于客户端,URL dev.example.com/at/en 应该在浏览器中仍然可见,而 dev2-at.example.com/en 在服务器端(内部)处理。

问题:经过网上的一番研究,我想出了以下配置来修改主机头:

RewriteEngine On
RewriteRule ^/([^/]+)/([^/]+) - [E=FIRST:$1,E=SECOND:$2]
Header set Host dev2-%{FIRST}e.example.com env=FIRST

mod_fastcgi.conf 看起来像:

<IfModule mod_fastcgi.c>
    AddHandler php-script .php
    Action php-script /php.fcgi virtual
    # TCP/IP
    FastCGIExternalServer /var/run/php-fpm/apache-php.fcgi -host 127.0.0.1:9000
    Alias /php.fcgi /var/run/php-fpm/apache-php.fcgi

    # FPM status page.
    <Location /php-fpm-status>
      SetHandler php-script
    </Location>

</IfModule>

这会导致 Host:dev2- php.fcgi .example.com 中的主机标头。我是否必须以某种方式绕过 php-fpm 的标头?还是一般有更流畅的方法来解决这个问题?

4

0 回答 0