[英]timthumb and apache mod_rewrite
我剛剛使用Apache 2和PHP 5.4在AWS上安裝了一個新實例。 除了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'
我要走錯路了嗎? 我正在嘗試解決第一個錯誤,但我想我朝錯誤的方向前進。 有什么想法怎么了?
您需要關閉mod_negotiation
在htaccess文件頂部,添加:
Options -MultiViews
Mod_negotiation看到類似/photos/thumb/something
類的請求,並且嘗試將URI映射到文件時,會在/photos/thumb.php
看到該文件,並認為該請求是針對該文件的(實際上是) 。 問題在於這將完全繞過mod_rewrite,因此您的規則不會得到應用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.