Сервер настроен на обработку файлов php с помощью fastcgi:
<IfModule mod_fastcgi.c>
AddHandler application/x-httpd-php .php
Action application/x-httpd-php /fcgi-bin/php-fpm virtual
ScriptAlias /fcgi-bin/php-fpm /fcgi-extsrvs-phpfpm
<Location "/fcgi-bin/php-fpm">
Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
</Location>
</IfModule>
Затем определяется виртуальный хост для использования этого fastcgi:
<VirtualHost *:80>
ServerName mydomain.org
DocumentRoot /var/www/mydomain.org
<Location />
Order Allow,Deny
Allow from All
AllowOverride None
</Location>
<IfModule mod_fastcgi.c>
# use the socket as defined for this pool
FastCgiExternalServer /fcgi-extsrvs-phpfpm -socket /var/run/php5-fpm/mydomain.org.sock
</IfModule>
# problem here
AliasMatch ^/(.*) /var/www/mydomain.org/index.php
</VirtualHost>
Все работает нормально, пока я не добавлю строку AliasMatch (такая же проблема с Alias). Цель состоит в том, чтобы обрабатывать каждый запрос с помощью скрипта index.php. Это вызывает ошибку 500 со следующим журналом:
[error] [client 88.xxx.xxx.20] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[debug] core.c(3112): [client 88.xxx.xxx.20] r->uri = /fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/
[debug] core.c(3118): [client 88.xxx.xxx.20] redirected from r->uri = /fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/fcgi-bin/php-fpm/
...
[debug] core.c(3118): [client 88.xxx.xxx.20] redirected from r->uri = /fcgi-bin/php-fpm/
[debug] core.c(3118): [client 88.xxx.xxx.20] redirected from r->uri = /
Я предполагаю, что существует конфликт между ScriptAlias и AliasMatch, но я не знаю, как его разрешить.
Ее решение аналогичной проблемы http://www.tokiwinter.com/avoiding-infinite-recursion-with-mod_rewrite-and-mod_fastcgi/ TL; DR используйте mod_rewrite и отключение перезаписи для URL-адреса скрипта php
Но я настоятельно рекомендую перейти на apache2.4 и использовать mod_proxy_fcgi. https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html где ты можешь
<FilesMatch "\.php$">
SetHandler "proxy:unix:/var/run/php5-fpm/mydomain.org.sock|fcgi://host1/"
</FilesMatch>
И при этом все перенаправления и перезапись должны работать должным образом. Кстати, mod_fastcgi устарел и уродлив. Если вы предпочитаете оставаться с 2.2 (которая сейчас EOL), вы можете попробовать https://github.com/lazy404/mod_fastcgi_handler (Я без проблем использую его на загруженном сайте с php-fpm) его конфигурация также чистая и совместима с перенаправлениями.