Ситуация: Я использую сервер с 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 работают на одном и том же хосте (поэтому не нужно использовать 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? Или есть вообще более плавный способ решить это?
Задача ещё не решена.
Других решений пока нет …