mod_negotiation 似乎已启用,但没有扩展名的 .php 文件返回 404

mod_negotiation 似乎已启用,但没有扩展名的 .php 文件返回 404

我遇到了以下问题 - 迁移到新平台后,除非 URL 包含其扩展名,否则无法找到 PHP 文件。因此,如果/var/www包含文件problem.php,则 URLhttp://localhost/problem.php可以正确显示,但http://localhost/problem实际上却不行。我尝试了以下方法:

  • 检查MultiViews配置文件中是否启用:

    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
  • 检查是否mod_negotiation通过以下方式加载phpinfo()

加载的模块:核心 mod_log_config mod_logio mod_version prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_status

  • 为了防止上述情况是压力引起的幻觉,请尝试加载mod_negotiation2并重新启动服务器:

    leviathan www # a2enmod negotiation
    Module negotiation already enabled
    leviathan www # service apache2 restart
      Restarting web server apache2                                                                                             apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
     ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                                                                          [ OK ]
    leviathan www # 
  • .htaccess通过在没有文件的目录中进行测试,确保不会导致这种情况.htaccess

但一切都无济于事,我仍然收到 404 错误,我完全不明白为什么。我做错了什么?我的平台是 Linux Mint 14。

答案1

我找到了一个解决方案。将以下行添加到/etc/apache2/mods-enabled/mime.conf

AddType application/x-httpd-php .php .phtml .html .htm

然后使用以下命令重新启动 apache:

# service apache2 restart

就完成了。我猜这是 Linux Mint 配置中的一个错误。

来源:webdeveloper.com 论坛上的“提供不带 PHP 文件扩展名 [apache] 的页面”主题

相关内容