我在 Apache 前面的 Nginx(设置为反向代理)有一些问题。我正在使用 Apache 来提供 PHP 文件并应用 .htaccess 规则。
Nginx 可以工作,但 .htaccess 中的一些重写没有。
我使用 timthumb.php 来管理媒体,例如:
/cache/150/100/file.jpg > /media/thumb.php?src=images/file.jpg&w=150&h=100
重写规则仅适用于 PHP 应用程序,但不适用于上述静态文件。当我尝试执行自己的静态规则时,Nginx 返回 404。
RewriteEngine On
RewriteRule ^cache/([0-9]+)/([0-9]+)/([a-z0-9_\-\.\/]+)$ /media/thumb.php?src=images/$3&w=$1&h=$2 [L]
RewriteRule ^upload/([0-9]+)/([0-9]+)/([a-z0-9_\-\.\/]+)$ /media/thumb.php?src=upload/$3&w=$1&h=$2 [L]
<Files .*>
Order Deny,Allow
Deny From All
</Files>
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT]