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 编辑 ] 2.解决图像不显示(这是已经集成在DP7里面的imagecache问题,花了我几天的时间)
这个原因出现在运行在nginx上的drupal网站,如果运行的网站是主站 + 分站的形式,Imagecache的rewrte配置需要正确配置,否则会出现找不到文件的错误,具体写法如下:
主站写法:
location ~ ^/sites/.*/files/styles/ {
if (!-e $request_filename) {
rewrite^/(.*)$/index.php?q=$1last;
break;
}
}
页:
[1]