我遇到了以下问题 - 迁移到新平台后,除非 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 配置中的一个错误。