kickmoon 发表于 2012-9-10 21:40:55

lnmp 0.8版本drupal clean url和301重定向

问题:drupal 开启clean url后,图片不显示,每次需要关闭然后再重开才会显示。
经过几天的摸索,查阅无数资料终于得到解决,在此留作存档,也愿后来的朋友方便。
方法:
1.解决开启 drupal clean url
vim /usr/local/nginx/conf/vhost/site.com.conf

在 root /home/wwwroot/site.com; 下面加上

try_files $uri @rewrite;
location @rewrite {
            rewrite ^/(.*)$ /index.php?q=$1;
      }

(修正一下,这种官方办法才是正确的。上面一种在开启CLEAN URL时图片会显示不正常)
一种官方推荐的代码:

if (!-e $request_filename) {
    rewrite ^/(.*)$ /index.php?q=$1 last;
}



2.解决图像不显示(这是已经集成在DP7里面的imagecache问题,花了我几天的时间)
/usr/local/nginx/conf/vhost下相应的.conf文件,加上:
# For Drupal7 use /styles instead of /imagecache
      location ~ ^/sites/.*/files/styles/ {
                try_files $uri @rewrite;
      }


3,解决301重定向到WWW
把conf这里server_name www.domain.cn domain.cn; 的 domain.cn删除掉,
然后在代码的最下面再加上一个server段:
server {
server_name domain.cn;
rewrite ^(.*) http://www.domain.cn$1 permanent;
}


记得最后都要重启生效。

/root/lnmp restart

[ 本帖最后由 kickmoon 于 2012-9-12 22:34 编辑 ]

bomnm 发表于 2012-12-14 15:00:06

2.解决图像不显示(这是已经集成在DP7里面的imagecache问题,花了我几天的时间)
这个原因出现在运行在nginx上的drupal网站,如果运行的网站是主站 + 分站的形式,Imagecache的rewrte配置需要正确配置,否则会出现找不到文件的错误,具体写法如下:
主站写法:

location ~ ^/sites/.*/files/styles/ {
               if (!-e $request_filename) {
                        rewrite^/(.*)$/index.php?q=$1last;
                        break;
                }
}
页: [1]
查看完整版本: lnmp 0.8版本drupal clean url和301重定向