我正试图转移到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
我尝试过重写,如果(s),不同类型的位置正则表达式,try_files,fastcgi_split_path_info ......我找不到鸡尾酒的成功!
任何/所有帮助表示感谢;谢谢大家!