繁体   English   中英

Nginx反向代理(在Apache中重写静态文件)

[英]Nginx reverse proxy (static files rewrite in apache)

我在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]

我想您是通过nginx直接提供“ / upload”和“ / cache”目录-而不将其传递给apache。

尝试以下规则:

 location ^~ /upload {
        .......
 }

 location ^~ /cache {
        .......
 }

在将您的静态文件存储在nginx config中的位置之前。 让我知道它是否有效-如果不能-还要粘贴nginx配置的一部分。

更多阅读: http : //wiki.nginx.org/HttpCoreModule#location

取决于您在代理过程中如何配置位置-它们具有不同的优先级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM