似乎无法在 Apache 中设置 AcceptPathInfo

似乎无法在 Apache 中设置 AcceptPathInfo

我正在尝试将 ExpressionEngine 网站迁移到新服务器上,但似乎遇到了障碍。要实现所需的功能,EE 需要AcceptPathInfo启用该指令,但就我的经验而言,我似乎无法让 Apache 配合。

该服务器运行 Fedora Core 18、Apache 2.4.3 和 PHP 5.4.11 Apache 模块。

我已尝试在虚拟主机配置中设置以下内容:

<VirtualHost *:80>
        DocumentRoot /home/mysite/public_html
        ServerName mysite.com
        <Directory /home/mysite/public_html/>
                AcceptPathInfo On
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

但是当我使用进行调试时phpinfo(),它仍然没有显示path_info,orig_path_info或orig_path_info_translated(我相信它们是由于打开AcceptPathInfo指令而产生的)。

我也尝试过简单地在 .htaccess 文件中设置指令AcceptPathInfoOn,但仍然无济于事。

我一直在检查我的 Dev 和 Live 环境之间的设置,似乎 Dev 服务器正在使用 FastCGI 运行 PHP 并使用 cgi.fix_pathinfo。

通常情况下,我对修改 httpd.conf 和 php.ini 相当有信心,但目前,我已经陷入了比我所能接受的程度更深的困境。我在这里遗漏了什么?

答案1

要在 Apache 中打开AcceptPathInfo(例如 Moodle 2.9),您需要更改 httpd.conf,如下所示:

对于 Apache 2.4 之前的版本:

<VirtualHost *:80>
    ServerName moodleback.local
    DocumentRoot "/usr/local/www/moodle"
    AcceptPathInfo On
    <Directory /usr/local/www/moodle>
      AllowOverride None
      Order Allow,Deny
      Allow from all
    </Directory>
</VirtualHost>

对于 Apache 版本 2.4.x 或更高版本:

<VirtualHost *:80>
    ServerName moodleback.local
    DocumentRoot "/usr/local/www/moodle"
    AcceptPathInfo On
    <Directory /usr/local/www/moodle/>
      AllowOverride None
      Require all granted
    </Directory>
</VirtualHost>

相关内容