跳转到主要内容
learningxm 提交于 27 April 2013
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中国群共享

我测试了一下,下面的写法可以正确运行

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;
  }
}