我束手无策...我正在尝试做一些简单的事情,但我不明白出了什么问题...
我只是试图将所有请求带到域,并将它们路由到 index.php
为清楚起见进行编辑: index.php 作为请求的调度程序,作为框架的一部分。
我已经在我的本地机器上正常工作了,但是在服务器上(带有 Plesk 的 VPS Linux)我遇到了各种各样的问题......
为清楚起见进行编辑:这些规则在虚拟主机的 vhost.conf 配置文件中定义。
这是 mod_rewrite:
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^/.* /index.php
</IfModule>
这是我尝试访问“www.mydomain.com/home/index”时的 apache 错误日志(例如):
[debug] core.c(3072): [client xxx.xxx.xxx.xxx] r->uri = /phppath/cgi_wrapper/phppath/cgi_wrapper/phppath/cgi_wrapper/home/index
[debug] core.c(3078): [client xxx.xxx.xxx.xxx] redirected from r->uri = /phppath/cgi_wrapper/phppath/cgi_wrapper/home/index
[debug] core.c(3078): [client xxx.xxx.xxx.xxx] redirected from r->uri = /phppath/cgi_wrapper/home/index
[debug] core.c(3078): [client xxx.xxx.xxx.xxx] redirected from r->uri = /home/index
正如您从跟踪中看到的那样,它似乎将 /home/index 重定向到 /phppath/cgi_wrapper/,然后似乎又被传递到 /phppath/cgi_wrapper/phppath/cgi_wrapper/home/index,依此类推,直到达到最大内部重定向。
一个 HTTP 500 被发送到浏览器。
进一步编辑 - 额外信息。从我从 Plesk 分散文件的方式中可以看出,这是对虚拟主机有影响的仅有的两行。我认为这可能是那个 Action 声明......我可以在 vhost.conf 中以某种方式覆盖它吗?
in php-cgi.conf:
ScriptAlias /phppath/ "/var/www/cgi-bin/cgi_wrapper/"
Action php-script /phppath/cgi_wrapper
in php.conf:
AddHandler php5-script .php
进一步编辑:在动态生成的 conf 文件(在虚拟主机级别)中找到了这个。
<Files ~ (\.php)>
SetHandler None
AddHandler php-script .php
Options +ExecCGI
allow from all
</Files>
有没有人对正在发生的事情有任何想法?我已经拉头发两天了......提前谢谢