我刚刚在AWS上使用Apache 2和PHP 5.4安装了一个新实例。除了timthumb.php之外,一切正常。我看到的错误是:
Negotiation: discovered file(s) matching request: /var/www/photos/thumb (None could be negotiated).
/ photos中的.htaccess文件如下所示:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^thumb/(.*)$ /photos/thumb.php?src=http://cdn.my-host.com/$1 [L]
在做了一些研究后,看起来我需要添加PHP类型,所以我在mime.conf文件中这样做了:
AddType application/x-httpd-php .php
重新启动apache后,我现在看到了这个错误:
PHP Fatal error: Unknown: Failed opening required '/var/www/photos/thumb.php'
我走错了路吗?我正试图解决第一个错误,但我认为我走向了错误的方向。有什么想法有什么问题?
答案 0 :(得分:1)
您需要关闭mod_negotiation
在htaccess文件的顶部,添加:
Options -MultiViews
Mod_negotiation看到/photos/thumb/something
之类的请求,当它尝试将该URI映射到文件时,它会在/photos/thumb.php
看到该文件,并认为该请求是针对该文件的(它是)。问题是这将完全绕过mod_rewrite,因此您的规则不会被应用。