Tag Archives: rewrite
在Nginx上利用rewrite重定向url
当网站的目录必须改变的时候,如何将原来目录的流量导入新的地址,并友好的对待SEO始终是个问题。 而Nginx的rewrite,利用简单的规则,就可以将:www.abc.com/bbs的url导入到bbs.abc.com。 具体的规则,是在conf配置文件上增加: rewrite ^/bbs/(.*) http://bbs.abc.com/$1; 这样,整个bbs的文件,便可自动转向到bbs.abc.com了。 然后重启nginx即可。
Discuz在Nginx下的rewrite配置
在使用Nginx以来,当时就为Discuz在Nginx下的配置苦恼了很久。随着Discuz的rewrite没有实现,导致网站论坛的收录一直在下滑。 网上的所有Discuz在Nginx配置都是在根目录下进行的,示例如下: if (!-f $request_filename) { rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last; rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2 last; rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last; rewrite ^/space-(username|uid)-(.+)\.html$ /space.php?$1=$2 last;rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last; } 而很多时候,discuz不是放在根目录,而是在bbs或者forum目下的,经过摸索,原来很简单: } if (!-f $request_filename) { rewrite ^/bbs/archiver/((fid|tid)-[\w\-]+\.html)$ /bbs/archiver/index.php?$1 last; rewrite ^/bbs/forum-([0-9]+)-([0-9]+)\.html$ /bbs/forumdisplay.php?fid=$1&page=$2 last; … Continue reading
自动将Apache Rewrite伪静态规则转换为Nginx Rewrite
不得不承认,Apache的占有率仍然是霸主,很多程序,在针对Apache进行rewiter的同时,却忽视了Ngingx。有时候,自己对比来重写是一个非常痛苦的过程。 这里,有一个国外的网站,自动将Apache rewrite自动转化为Nginx的rewrite。 http://www.anilcetin.com/convert-apache-htaccess-to-nginx/
Nginx rewrite 参数和例子
正则表达式匹配,其中:
1. * ~ 为区分大小写匹配
2. * ~* 为不区分大小写匹配
3. * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配,其中:
1. * -f和!-f用来判断是否存在文件
2. * -d和!-d用来判断是否存在目录
3. * -e和!-e用来判断是否存在文件或目录
4. * -x和!-x用来判断文件是否可执行 Continue reading