Przerobienie jednej regułki rewrite z apache na nginx
: 08 kwietnia 2014, 16:09
Witam, mam problem.
Zacznę od struktury plików mojego CMS'a: folder web a w nim plik add.php, taka wiedza powinna wystarczyć.
Pierwotne rewrite pod apache wyglądało tak:
Przerobione rewrite pod nginx wygląda u mnie tak:
location = /add {rewrite ^(.*)$ add.php;}
Po dodaniu powyższej regułki do pliku vhost dla mojej domeny i zresetowaniu nginxa gdy wchodzę na strone XXX.pl/add objawia się error 404, tak jakby szukał pliku index.html w folderze web/add a powinien szukać pliku add.php w folderze web bo add nie istnieje jako folder a jako plik .php i to w folderze web.
Dodatkowo log jak działa ten rewrite:
2014/04/07 21:49:52 [error] 203244#0: *7 "/var/www/XXX.pl/web/add/index.html" is not found (2: No such file or directory), client: XXX, server: XXX.pl, request: "GET /add/ HTTP/1.1", host: "XXX.pl", referrer: "http://XXX.pl/"
Czyli powinien znajdować plik add.php w folderze web a znajduje plik index.html w folderze web/add który nie istnieje, o co tu chodzi ?
Zacznę od struktury plików mojego CMS'a: folder web a w nim plik add.php, taka wiedza powinna wystarczyć.
Pierwotne rewrite pod apache wyglądało tak:
Kod: Zaznacz cały
[color=#660066]RewriteRule[/color][color=#000000] [/color][color=#666600]^[/color][color=#000000]add[/color][color=#666600]/[/color][color=#000000]$ add[/color][color=#666600].[/color][color=#000000]php[/color]
location = /add {rewrite ^(.*)$ add.php;}
Po dodaniu powyższej regułki do pliku vhost dla mojej domeny i zresetowaniu nginxa gdy wchodzę na strone XXX.pl/add objawia się error 404, tak jakby szukał pliku index.html w folderze web/add a powinien szukać pliku add.php w folderze web bo add nie istnieje jako folder a jako plik .php i to w folderze web.
Dodatkowo log jak działa ten rewrite:
2014/04/07 21:49:52 [error] 203244#0: *7 "/var/www/XXX.pl/web/add/index.html" is not found (2: No such file or directory), client: XXX, server: XXX.pl, request: "GET /add/ HTTP/1.1", host: "XXX.pl", referrer: "http://XXX.pl/"
Czyli powinien znajdować plik add.php w folderze web a znajduje plik index.html w folderze web/add który nie istnieje, o co tu chodzi ?