!@#123 发表于 2013-9-16 13:25:51

Nginx伪静态规则疑惑

if ($request_uri ~ "/+[^\.]+$"){
rewrite ^/(.+[^/])$ $request_uri/ permanent;}
上面这段代码加到nginx中是为了解决伪静态访问 http://域名/abc 后自动补上一个/
但是在根目录下有一个真实的文件夹 archiver
访问 http://域名/archiver 时就成下面这样,后面出现了好多个/
http://域名/archiver/////////////////////
请大家指点迷津!

puffbaby 发表于 2013-9-16 14:52:10

默认的伪静态可能有些问题的

licess 发表于 2013-9-16 15:36:33

rewrite ^([^.\?]*[^/])$ $1/ permanent;
这样试试

!@#123 发表于 2013-9-16 18:49:42

回复 3# 的帖子

军哥,改为:rewrite ^([^.\?]*[^/])$ $1/ permanent;这样也不行。
访问 http://域名/archiver 或 http://域名/archiver/ 会自动跳转到首页
http://域名/forum.php

[ 本帖最后由 !@#123 于 2013-9-16 18:51 编辑 ]

licess 发表于 2013-9-16 20:33:08

只是在目录后加/ 是没问题的,可能你的伪静态有干扰。

!@#123 发表于 2013-9-16 21:07:31

伪静态规则是这样的,请军哥指点迷津。
rewrite ^([^\.]*)/(\w+)-type-(+)-(+)/$ $1/forum.php?mod=forumdisplay&fid=$2&typeid=$3&typeid=$3&filter=typeid&page=$4 last;
rewrite ^([^\.]*)/(\w+)-sort-(+)-(+)/$ $1/forum.php?mod=forumdisplay&fid=$2&sortid=$3&sortid=$3&filter=sortid&page=$4 last;
rewrite ^([^\.]*)/gid-(+)/$ $1/forum.php?gid=$2 last;
rewrite ^([^\.]*)/tag/$ $1/misc.php?mod=tag last;
rewrite ^([^\.]*)/tag-(thread|blog)-(+)-(+)/$ $1/misc.php?mod=tag&id=$3&type=$2&page=$4 last;
rewrite ^([^\.]*)/tag-(+)/$ $1/misc.php?mod=tag&id=$2 last;
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-(+)-(+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/group-(+)-(+)\.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-(+)-(+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-(+)\.html$ $1/index.php?action=$2&value=$3 last;
rewrite ^([^\.]*)/tid-(+)-(+)/$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D1&page=$3 last;
rewrite ^([^\.]*)/tid-(+)/$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D1&page=1 last;
rewrite ^([^\.]*)/(\w+)-fid-(+)/$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
if (!-e $request_filename) {
rewrite ^([^\.]*)/(\w+)/$ $1/forum.php?mod=forumdisplay&fid=$2&page=1 last;
}
rewrite ^([^\.]*)/(+*)-(+)\.html$ $1/plugin.php?id=$2:$3 last;
if (!-e $request_filename) {
return 404;
}

!@#123 发表于 2013-9-17 00:03:14

感谢军哥,已解决!
页: [1]
查看完整版本: Nginx伪静态规则疑惑