1

我正在尝试迁移到 nginx ......

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

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 产品做类似的事情,我找到了很多示例,但我们有这个奇怪的 USERKEY 有效负载(它是 index.php 路径的一部分)导致我的配置出现问题。此外,我在处理 index.php 之后的斜线 (/) 时遇到了困难。错误日志将显示:

"/bobmsith/index.php/login" failed (20: Not a directory)

尝试浏览到:http ://www.myapp.com/bobsmith/login

我尝试过使用重写、if(s)、不同类型的位置正则表达式、try_files、fastcgi_split_path_info ......我找不到成功的鸡尾酒!

任何/所有帮助表示赞赏;谢谢大家!

4

0 回答 0