nginx try_files混淆

我要做的设置如下:我想让nginx在/ test子目录中查找一个文件,如果它不在那里,请从正常的uri中find它。 我想这将是相当简单的try_files。 这是我想出的设置:

server { listen 80; server_name test-server; location / { root /opt/www; index index.php; try_files /test$uri $uri; } } 

这半工程。 如果我去http:// test-server / something ,并且有一个/ test / something文件,它将提供/ test / something文件。 但是,如果没有/ test / something文件,但是有一个/ something文件,它将返回一个500内部服务器错误。 我最好的猜测是有一些recursion循环正在进行,但我不知道替代是什么。

try_files的最后一个参数必须是有保证的文件。 $ uri是不可接受的。 而是使用try_files /test$uri $uri =404;