Kostolgatom az Nginx -et, sikerult is beloni, de valami nem az igazi: ha egy GET parameter szokozt tartalmaz, akkor megbolondul, mert nem jol ertelmezi a parametereket.
Nem szeretnek tulsagosan belemenni a reszletebe, azt biztosan tudom, hogy a rewrite -al van a gond, mert apache -al rendesen mukodik.
Az adott szerveren lenne tobb web app ( ebben a peldaban a demo/app1 lenne ).
/var/www ->root
/var/www/demo/app1/.htaccess:
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
/var/www/demo/app1/public/.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
-------------------
Ez nginx -ben igy nez ki:
location /demo/app1/ {
index public/index.php;
if (!-e $request_filename) {
rewrite ^/demo/app1/(.*)$ /demo/app1/public/index.php?url=$1 last;
}
}
Mint mondtam nem szeretnek tulsagosan belemerulni a reszletekbe, hogy mi es miert, csak annyiban szeretnek segitseget kapni, hogy hogyan javitsam ki a rewrite -ot.
Koszonom!
- 3030 megtekintés
Hozzászólások
(sub)
- A hozzászóláshoz be kell jelentkezni
Mi az Nginx verziója? Ezt a bugot elvileg már javították.
if-et nem szerencsés használni itt, inkább így:
location /demo/app1/ {
index public/index.php;
try_files $uri @rewrite;
}
location @rewrite {
rewrite ^/demo/app1/(.*)$ /demo/app1/public/index.php?url=$1 last;
}
- A hozzászóláshoz be kell jelentkezni
+1
IfIsEvil
http://wiki.nginx.org/IfIsEvil
- A hozzászóláshoz be kell jelentkezni
Eltekintve a mások által is említett IfIsEvil problémától, van egy lényeges dolog, amit gyakorlatilag pont az if miatt nem jól konvertáltál:
A .htaccess-ben lévő fájlteszt a /var/www/demo/app1/public alatt keres, az nginx-es megoldás viszont egy könyvtárral feljebb!
Kb. az alábbi fejezi ki egy az egyben a htaccesses megoldást:
location /demo/app1/ {
rewrite /demo/app1/(.*)$ /demo/app1/public/$1;
}
location /demo/app1/public/ {
index index.php;
try_files $uri @rewrite;
}
location @rewrite {
rewrite ^/demo/app1/public/(.*)$ /demo/app1/public/index.php?url=$1 last;
}
- A hozzászóláshoz be kell jelentkezni