我在使用 Apache 2.2.22 + PHP 5.4.0 的主机上遇到以下问题
我需要/home/server1/htdocs/admin/contents.php
在用户发出请求时提供文件:http://server1/admin/contents
,但我在服务器 error_log 上获得了此消息。
Negotiation: discovered file(s) matching request: /home/server1/htdocs/admin/contents (None could be negotiated)
Run Code Online (Sandbox Code Playgroud)
请注意,我mod_negotiation
在相关虚拟主机的选项中启用了 MultiViews:
<Directory "/home/server1/htdocs">
Options Indexes Includes FollowSymLinks MultiViews
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)
我也使用mod_rewrite
, 遵循以下.htaccess
规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\./]*)$ index.php?t=$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,但是在与 PHP 5.3.6 相同的盒子上它曾经可以正常工作。我只是想升级到 PHP 5.4.0,但我无法解决这个协商问题。关于为什么 Apachecontents.php
在请求时无法匹配的任何想法content
(这应该是 mod_negotiation 应该做什么)?
更新:我注意到 mod_negotiation 对于扩展名不同于 .php 的文件的行为是正确的:所以如果我有一个名为 /admin/contents.txt 的文件,我可以使用带有 /admin/contents url 的浏览器定期访问它。所以这个问题只针对 php 文件。关于什么可能导致谈判失败的任何线索?
lor*_*con 45
我找到了解决方案。确实很容易。我忘了包括以下内容:
AddType application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)
进入 apache mod_mime 部分进入 httpd.conf
我被 php 脚本正常工作这一事实误导了;然而协商失败了,因为 mod_negotiation 只寻找“有趣的”(和已知的)文件类型。
小智 12
从 Debian Squeeze 更新到 Wheezy 后,我遇到了同样的问题。在mods-enabled/mime.conf
包括从系统中已知的文件类型:
TypesConfig /etc/mime.types
Run Code Online (Sandbox Code Playgroud)
问题是该/etc/mime.types
文件被更新替换了,在替换的文件中,PHP部分被注释掉了。在搜索时,我发现:
#application/x-httpd-php phtml pht php
#application/x-httpd-php-source phps
#application/x-httpd-php3 php3
#application/x-httpd-php3-preprocessed php3p
#application/x-httpd-php4 php4
#application/x-httpd-php5 php5
Run Code Online (Sandbox Code Playgroud)
我必须#
从包含 php 相关内容的每一行中删除,然后保存并重新启动 Apache Web 服务器。这解决了问题而无需修改mime.conf
文件。
您可以配置为匹配没有类型的文件,而不是映射.php
到媒体类型(这可能会产生安全隐患,如禁用它们的Debian Bug 589384中所述),如Mark Amery 对类似问题的回答中所建议的:MultiviewsMatch
.php
<Files "*.php">
MultiviewsMatch Any
</Files>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32373 次 |
最近记录: |