我试图移植我的一些我的客户在Windows上的Macconfiguration。
由于Windows不是Mac OS,我必须使用php-cgi.exe而不是PHP-FPM。 我已经testing了每个组件,并且一切似乎都起作用,所以我认为这是一个configuration问题。
在我的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:开头。
testing这个configuration时,会产生这个错误:
代理错误
代理服务器收到来自上游服务器的无效响应。 代理服务器无法处理请求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] ^
我得到这个错误:
没有指定input文件。
实际上,到目前为止我testing过的所有东西都有这个错误。
有解决scheme吗?