Nginx rewrite hiba [Megoldva]

 ( lacesz | 2014. április 16., szerda - 14:57 )

Üdvözlet!

Adott a .htaccess fájlom:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php/$1 [L]

És adott az nginx rewrite kódom:

location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php/$1 break;
}
}

Amikor rá megyek a teljes bejegyzésre, 404-es hibát kapok vissza az nginxtől.
Mi lehet a hiba?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Szerintem a jelenlegi megoldassal az index.php egy konyvtarnak ertelmezi es azon belul keresi egy fajlt a $1 tartalmaval. Az error.log-ban kene valaminek lennie, foleg ha a log_not_found nem off.

Esetleg:

location / {
  if (!-e $request_filename){
    rewrite ^(.*)$ /index.php?$1 break;
  }
}

De mostanaban a try_files a meno if helyett.

Peldaul egyik ugyfelnel:

location / {
  root   /var/www/$root;
  index  index.php index.html index.htm;

  try_files $uri $uri/index.html @clean_URL_rewrite;
}

location @clean_URL_rewrite {
  rewrite ^/([^.?]*)$ /index.php?path=/$1 last;
}

Ha át írom az index.php/$1 -et index.php?$1 -re akkor szeretné letölteni a bejegyzést bináris fájlként.

Ilyesmiként kellene kinéznie:
www.valami.hu/2014/04/teszt-bejegyzes

---
Bill Gates a sátán, a Microsoft pedig az apokalipszis egyik lovasa...

Megoldódott :)

location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php/$1 last;
}
}

A break -ot kelett átírtam last -ra és tökéletesen működik :)
www.kardiweb.org

---
Bill Gates a sátán, a Microsoft pedig az apokalipszis egyik lovasa...