关注和使用LNMP一年多,受益匪浅,在此感谢军哥!刚刚升级到了1.1版本,遇到一个不大不小的问题。和之前1.0版本使用一样的rewrite规则(添加域名的时候选择discuz什么的,这个文件位于/usr/local/nginx/conf/下),却不生效。具体如下:
- location / {
- rewrite "^.+dl/?(.*)[ DISCUZ_CODE_0 ]quot; http://dl.wifihell.com/$1 permanent;
- rewrite "^.+forum/?(.*)[ DISCUZ_CODE_0 ]quot; http://forum.wifihell.com/$1 permanent;
- rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
- rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
- rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
- rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
- rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
- rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
- rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
- rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
- rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
- if (!-e $request_filename)
- {
- return 404;
- }
- }
复制代码
第二行规则的本意是把http://www.wifihell.com/dl/csc.png的URL改为http://dl.wifihell.com/csc.png。此规则在1.0版本是完全可用的。经测试,扩展名为png、jpg、swf都不可能用,于是想到了对比前后生成的conf文件,也一样的。不过这个时候发现了一个规律,在conf文件内有一段
- location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
- {
- expires 30d;
- }
复制代码
一不做二不休,改为
- location ~ .*\.(aa)$
- {
- expires 30d;
- }
复制代码
这个时候跳转就正常了。因为有的图片链接是以前输入的,没心思一个一个去找来修改,就只有用这个办法。希望对遇到此问题的人有帮助,另外希望军哥给出一个更加详细的rewrite规则介绍,虽然能Google到不少,但是对于lnmp的实际应用意义不大。
[ 本帖最后由 wifihell 于 2014-6-26 21:59 编辑 ] |