我有以下apache配置:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
DocumentRoot /var/www/html/public/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/ssl.key
Alias /login/ /var/www/html/saml_provider/www/
<LocationMatch "^(.*\.php)$">
ProxyPass fcgi://presentation-php-fpm:9000/var/www/public
</LocationMatch>
</VirtualHost>
</IfModule>
点击www.example.com/hello.php工作正常,因为LocationMatch块获取这是一个php文件,并使用proxy-pass将其发送到php-fpm引擎。
然而,点击www.example.com/login/hi.php不起作用,给出了“文件未找到”错误。这是有道理的,因为我猜它正试图在/ var / www / public中找到该文件,但它实际上在/ var / www / html / saml_provider / www /.
如何修复此问题,以便php还可以在别名上提供任何.php文件:
www.example.com/login/hi.php ---由php提供服务----&gt; /var/www/html/saml_provider/www/hi.php