将CMS的nginx url重写直接发送到/[user]/index.php

将CMS的nginx url重写直接发送到/[user]/index.php,url,url-rewriting,nginx,Url,Url Rewriting,Nginx,我正试图搬到nginx 我有一个应用程序在apache中运行,使用以下mod_rewrite命令: RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^/([a-z\-0-9]+)/(.*)$ /$1/index.php/$2 [E=USERKEY:$1,L] 我们正在使用的PHP支持进程项的形式如下: /[USERKEY]/index.php/[module]/[action]/[etc...] 我们希望将每个

我正试图搬到nginx

我有一个应用程序在apache中运行,使用以下mod_rewrite命令:

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/([a-z\-0-9]+)/(.*)$ /$1/index.php/$2 [E=USERKEY:$1,L]
我们正在使用的PHP支持进程项的形式如下:

/[USERKEY]/index.php/[module]/[action]/[etc...]
我们希望将每个命中(磁盘上没有静态文件)传递到index.php文件,以便以以下格式进行处理:

http://www.myapp.com/bobsmith/rockstar/add?q=45678
将转化为:

/var/www/some_static_path/bobsmith/index.php/rockstar/add?q=45678
我知道一些CMS产品也有类似的功能,我找到了很多例子,但是我们有一个奇怪的用户密钥负载(这是index.php路径的一部分),这会给我的配置带来问题。此外,我还很难处理index.php之后的斜杠(/)。错误日志将显示:

"/bobmsith/index.php/login" failed (20: Not a directory)
尝试浏览到以下位置时:

我试过使用重写、if(s)、不同类型的location regex、try_文件、fastcgi_split_path_info。。。我找不到成功的鸡尾酒

感谢任何/所有帮助;谢谢大家