location ^~ /sites/default/files/styles/ { index index.php index.html; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; break; } }
drupal 处理图片的时候会重定向
所以要nginx 要专门处理下这个请求
因为Drupal的Image Style访问的图片会将起重写到 /?q=/sites/default…. 这样的地址,而并不是直接让Apache来返回的,而Nginx因为没有相关的Rewrite Rule,所以并没有将静态文件的访问转到 Drupal 上
来自drupal中国群共享articles
我测试了一下,下面的写法可以正确运行:
我测试了一下,下面的写法可以正确运行:
location ^~ /sites/default/files/styles/ { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; break; } }
但下面的写法不能正常工作
location ^~ /sites/.*/files/styles/ { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; break; } }
方域后来又给出了优化的方案,可以参考一下