簡體   English   中英

timthumb和Apache mod_rewrite

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM