Назад | Перейти на главную страницу

Apache 2.4 + mod_rewrite + FastCGI (php-cgi.exe) в Windows

Я пытаюсь перенести свою конфигурацию Mac на Windows для некоторых своих клиентов.

Поскольку Windows - это не Mac OS, мне приходится использовать php-cgi.exe вместо PHP-FPM. Я тестировал каждый компонент индивидуально, и, похоже, все работает, поэтому я считаю, что это проблема только конфигурации.

На моем Mac у меня есть это RewriteRule:

RewriteCond %{SERVER_NAME}     ^([^.]+)\.([^.]+)\.dev$
RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000%{DOCUMENT_ROOT}/%2/%1/$1" [P]

Я добавил RewriteCond чтобы вы могли видеть где %1 и %2 исходят из.

На моем Mac он работает нормально, так как %{DOCUMENT_ROOT} начинается с /, но в Windows %{DOCUMENT_ROOT} начинается с C:.

При тестировании этой конфигурации возникает такая ошибка:

Ошибка прокси

Прокси-сервер получил недопустимый ответ от вышестоящего сервера. Прокси-сервер не может обработать запрос GET /.

Причина: ошибка поиска DNS для: 127.0.0.1:9000c:

Похоже (просматривая error.log), что 127.0.0.1:9000:C: рассматривается как часть IPv6-адреса, он преобразуется как [127.0.0.1:9000:C:] в журнале.

Если я попытаюсь изолировать две части с помощью /:

RewriteCond %{SERVER_NAME}     ^([^.]+)\.([^.]+)\.dev$
RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/%{DOCUMENT_ROOT}/%2/%1/$1" [P]
                                                     ^

Я получаю такую ​​ошибку:

Не указан входной файл.

Фактически, я получал эту ошибку для всего, что я тестировал до сих пор.

Есть решение?