当 PHP 作为 CGI 二进制文件安装时,无法在根文件夹中执行 index.php

当 PHP 作为 CGI 二进制文件安装时,无法在根文件夹中执行 index.php

我正在尝试在学校的服务器上创建一个网站,但他们将 PHP 安装为 CGI,因此 .php 文件只能在 cgi-bin 文件夹中运行。
如果我希望我的索引是 .php 文件而不是 .html,这有点问题,因为它需要位于 cgi-bin 文件夹之外和根 WWW 文件夹中。

此外,它是一个 apache 服务器,所以我尝试编辑我的 .htaccess 文件,结果却发现我不知道 php-cgi 二进制文件在哪里(毕竟这是我学校的服务器,我没有权限进行探索)。

有没有其他方法可以让 cgi-bin 文件夹之外的 .php 索引文件正常工作,而不需要执行一些丑陋的操作,例如在根目录中创建一个 index.html 文件,然后重定向到 cgi-bin 文件夹内的 .php 文件?

答案1

您有几个选项。如果mod_rewrite已打开,您可以使用它将请求重写到 中的路径/cgi-bin/$_SERVER[]仍将包含原始请求 URI,以便您可以根据请求的路径有条件地执行操作。

或者,如果你坚持使用 .htaccess 来允许 PHP 文件在任何地方执行(这甚至可能是不可能的——httpd.conf 通过指令指定了AllowOverride.htaccess 文件可以做什么和不能做什么),那么创建一个包含以下内容的 PHP 文件:

<?php
phpinfo();

并将其放在您的cgi-bin目录中,它将告诉您有关 PHP 安装的所有相关详细信息(其中应包括可执行文件的位置php-cgi)。

答案2

您可以创建一个带有元重定向的 index.html 文件,它不会清理 URL,但至少它可以起作用。

相关内容