首页 » 互联网资讯 » 正文

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


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

location ~ ^/sites/.*/files/styles/ {
if (!-e $request_filename) {
rewrite  ^/(.*)$  /index.php?q=$1  last;
break;
}
}

Discuz!Q

 

发表评论