Apache mod_proxy_fcgi、php fpm和url重写问题

Apache mod_proxy_fcgi、php fpm和url重写问题,php,apache,Php,Apache,我需要将一个应用程序从Apache PHP模块迁移到PHP-FPM,因为我看到mod_proxy_fcgi是首选方式 该应用程序正在运行旧的Zend framework 1 VHost中的一些相关部分: RewriteEngine on DocumentRoot /home/app/www <Directory "/home/app/www"> Require all granted AllowOverride All

我需要将一个应用程序从Apache PHP模块迁移到PHP-FPM,因为我看到mod_proxy_fcgi是首选方式

该应用程序正在运行旧的Zend framework 1

VHost中的一些相关部分:

RewriteEngine on
DocumentRoot /home/app/www
<Directory "/home/app/www">
                Require all granted
                AllowOverride All
                Options +FollowSymLinks
</Directory>
<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php/php7.0-fpm.sock|fcgi://php7/"
</FilesMatch>
<Proxy fcgi://php7>
    ProxySet connectiontimeout=5 timeout=240
</Proxy>
当我点击一个标准php页面时,一切都很顺利。但每当我想使用路由器时,我都会得到PHP-FPM提供的404(例如)。我仍然可以让我的路由器直接浏览工作

URL重写在启用调试重写日志后运行,我可以看到它通过了所有规则

有趣的是,我还使用旧的mod_fastcgi测试了PHP-FPM。通过这种方法,在完全相同的配置下,一切都进行得很顺利。更重要的是,重写日志的调试是完全相同的


我已经为此挣扎了好几天了。有人有解决这个问题的绝妙想法吗?

虽然这可能不是最好的答案,但我确实有完全相同的问题。重写你的.htaccess文件以获得?在index.php的结尾,我确实解决了这个问题

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?/$0 [L]
请注意,在重写规则上添加了问号

如果你有不同的解决方法,请更新此帖子

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?/$0 [L]