nginx rewrite kérdés

Sziasztok!

Segítséget kérek a tárgyi témában, szétgugliztam az agyamat, átolvastam a doksikat de nem megy ahogy szeretném.

Egy codeigniter oldalt kellett nginx alá átpakolni. Gugli segítségével megy az oldal, de:
van egy almappa, ahol az oldal adminfelülete van, és az ide érkező kéréseket nem kéne átírni a roothoz.

Ezt alkottam:
if (!-e $request_filename)
{
rewrite ^/myadmin/(.*)$ /myadmin/index.php?/$1 last;
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}

Vagyis a myadmin alá érkező kéréseket írja át myadmin/index.php?.... -ra, a többi meg /index.php?...
(a myadmin almappába egy "al" codeigniter van)

Az oldal megy rendesen, a /myadmin/akármi kérésre 404-et dob.

Ezek a rewrite-ok vannak még előtte, egy CI emberke blogjából:
# enforce www (exclude certain subdomains)
# if ($host !~* ^(www|subdomain))
# {
# rewrite ^/(.*)$ $scheme://www.$host/$1 permanent;
# }

# enforce NO www
if ($host ~* ^www\.(.*))
{
set $host_without_www $1;
rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
}

# canonicalize codeigniter url end points
# if your default controller is something other than "welcome" you should change the following
if ($request_uri ~* ^(/articles(/index)?|/index(.php)?)/?$)
{
rewrite ^(.*)$ / permanent;
}

# removes trailing "index" from all controllers
if ($request_uri ~* index/?$)
{
rewrite ^/(.*)/index/?$ /$1 permanent;
}

# removes trailing slashes (prevents SEO duplicate content issues)
if (!-d $request_filename)
{
rewrite ^/(.+)/$ /$1 permanent;
}

# removes access to "system" folder, also allows a "System.php" controller
if ($request_uri ~* ^/system)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}

Mi lehet a gond?
Köszönöm előre is!

Hozzászólások

tedd location block-ba

location /myadmin/ {
rewrite ^/myadmin/(.*)$ /myadmin/index.php?/$1
}

jó tanács, az a rengeteg if tök felesleges

Köszi az infót, ezt alkottam meg:

location / {
try_files $uri @main;
}

location @main {
rewrite ^(.*)$ /index.php?/$1;
}

location /myadmin/ {
try_files $uri @admin;
}

location @admin {
rewrite ^/myadmin/(.*)$ /myadmin/index.php?/$1;
}

Megy a rewrite, ennek ellenére az "al-CI" 404-et hoz ki valahogy,
remélem ez CI beállítási gond lesz, remélem a fejlesztő meg tudja oldani,

---
Why use Windows, if you have open doors… to Linux