2016-10-22 61 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--。不確定是否滿足。