我的文件夹结构如下我有一个名为docs
的文件夹,其中有2个文件:all_docs.php
和level.php
all_docs有两个参数,我有这样的重写规则:
rewrite ^/doc-([^/]*)-([^/]*)/?$ /doc/all_docs.php?title=$1&lang=$2 last;
这使得像
这样的url成为可能all_docs.php?title=fashion&lang=en
看起来像:
/doc-fashion-en/
问题是,我也想访问级别。php在doc文件夹但是重写后我不能,因为nginx请求:
不存在的/doc-fashion-en/level.php
如果没有成功,level.php有一些get参数需要传递这就是为什么我使用$args
如有任何帮助,不胜感激
这些重写规则应该适合您:
rewrite ^/doc-([^/]+)-([^/]+)/?$ /doc/all_docs.php?title=$1&lang=$2 last;
rewrite ^/doc-[^/]+-[^/]+/level.php(.*)$ /doc/level.php$1 last;
考虑使用+
而不是*
,当你确定至少应该有一个符号。事实上,^/doc-([^/]*)-([^/]*)/?$
匹配/doc--
。我不确定这是有意的