Nginx

Nginx 重寫規則等效於 Apache 版本

  • March 27, 2011

我正在使用 PHPThumb 腳本在我的部落格 www.muylinux.com 上的一個小滑塊/輪播中調整圖像大小。我已經完成了從 Cherokee(我們的網路伺服器有問題)到 Nginx 的遷移,但是儘管幾乎一切都執行良好,但輪播並未顯示 PHPThumb 生成的縮略圖,儘管圖像實際上位於它連結到的目錄中.

例如,這是目前應該顯示的圖像之一:

www.muylinux.com/wp-content/themes/massivenews/scripts/phpThumb/phpThumb.php?src=/wp-content/uploads/2010/11/Unix.jpg&w=186&h=156&zc=T&q=95

如您所見,圖像在那裡:

www.muylinux.com/wp-content/uploads/2010/11/Unix.jpg

但不知何故,它沒有顯示在首頁的輪播中。

我很確定這是一些重寫規則的問題,但我不知道如何解決這個問題。

我已經看到 Apache 中的 RewriteRule 應該是

RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]

我不確定“翻譯”到 nginx 規則是否可行,但我想這很有可能會奏效。

有人可以嘗試給我等效的 Nginx 重寫規則嗎?我試過這個:

rewrite ^/([^?]*)(?:\?(.*))? index.php?thumb=$1$2;

我是這方面的初學者,但沒有奏效。

最終不需要為了解決問題而包含新的重寫規則。

找不到路徑和圖像,因為外掛目錄沒有執行權限

因此,如果有人處理此問題,只需訪問您的 WordPress 安裝,

cd blog_path/wp-content/themes/theme_name

就我而言,在該文件夾中,我有一個包含 phpThumb 腳本的“*腳本”子文件夾。*所以從那條路上,

chmod 755 -R scripts/

而且…問題解決了。

如果我理解正確,這有點奇怪,通常您不會將對 PHP 文件的請求重寫為 index.php。

轉換RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]為 Nginx 配置語法的最佳方法是使用try_files $uri $uri/ /index.php?thumb=$request_uri;

考慮到請求是針對 PHP 腳本的,您可能需要在您的 PHP 位置使用它。如果您發布了配置文件,可能會更容易說。

引用自:https://serverfault.com/questions/206714