2016-10-22 65 views
0

我的文件夹结构如下 我有一个文件夹命名为docs这里面我有2个文件: all_docs.phplevel.phpnginx的重写文件

all_docs有2个参数,我有这样的重写规则:

rewrite ^/doc-([^/]*)-([^/]*)/?$ /doc/all_docs.php?title=$1&lang=$2 last; 

这使得能够实现像

all_docs.php?title=fashion&lang=en 
0123的网址

的样子:

/doc-fashion-en/ 

的问题是,我也想访问的文档文件夹内level.php但 我不能因为nginx的要求重写之后:

/doc-fashion-en/level.php不存在

我试过 重写^/doc - ([^ /] ) - ([^ /])/level.php /doc/level.php?$args;

没有成功,level.php有一些需要传递的参数 这就是为什么我使用$ args。

任何帮助,将不胜感激

+0

对'level.php'的请求应该怎么看? '/ doc-title-lang/level.php'? –

+0

是的,确切地说,不包括像level.php这样的参数?lang = us&volume = 4 etc – inrob

回答

0

这些重写规则应该为你工作:

rewrite ^/doc-([^/]+)-([^/]+)/?$ /doc/all_docs.php?title=$1&lang=$2 last; 
rewrite ^/doc-[^/]+-[^/]+/level.php(.*)$ /doc/level.php$1 last; 

考虑使用的+代替*时,你肯定应该有至少一个符号。实际上,^/doc-([^/]*)-([^/]*)/?$匹配/doc--。不确定是否满足。