使用apache和php fpm根据重写条件设置主机头
情境:我正在运行一个带有Apache2.2和PHP-FPM mod_fastcgi、PHP5.4.37的服务器。我需要在内部重写一个完整的网址喜欢。两个服务器别名都在同一vhost上运行,因此不需要mod_代理?。 对于客户端,URL dev.example.com/at/en应该在浏览器中仍然可见,而dev2-at.example.com/en在服务器端内部处理 问题:在互联网上进行了一些研究之后,我提出了以下配置来修改主机头:使用apache和php fpm根据重写条件设置主机头,apache,.htaccess,mod-rewrite,php,mod-headers,Apache,.htaccess,Mod Rewrite,Php,Mod Headers,情境:我正在运行一个带有Apache2.2和PHP-FPM mod_fastcgi、PHP5.4.37的服务器。我需要在内部重写一个完整的网址喜欢。两个服务器别名都在同一vhost上运行,因此不需要mod_代理?。 对于客户端,URL dev.example.com/at/en应该在浏览器中仍然可见,而dev2-at.example.com/en在服务器端内部处理 问题:在互联网上进行了一些研究之后,我提出了以下配置来修改主机头: RewriteEngine On RewriteRule ^/(
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>
这是主机中主机头的结果:dev2-php.fcgi.example.com。我是否必须以某种方式绕过php fpm的标题?或者有没有一种更平滑的方法来解决这个问题?我会使用php来完成这个任务。我认为这样比较安全。如果你想使用phpHi,可以发布答案,谢谢。我还考虑了应用程序方面的解决方案。为什么会更安全?我希望看到您的PHP版本:我发现它更安全,因为您可以记录重定向,并在某些东西无法正常工作时快速采取行动