Quam 0 Zgłoś post Napisano Listopad 5, 2011 Witam, Przsiadłem się z apache na Nginx. Nie potrafie poradzić sobie z htaccess nie wiem jak przerobić oraz czy trzeba cos podawać w nginx.conf. Proszę o pomoc osoby z większą wiedzą jak przerobić poprawnie ten plik. SetEnv PHP_VER 5 Options +FollowSymLinks <IfModule mod_rewrite.c> RewriteEngine On # Profile Show # RewriteRule ^profile_show,(.*),(.*),nb.html?$ index.php?act=profile_show&user=$1&step=$2&no_body=1 [NC] RewriteRule ^profile_show,(.*)-(.*),(.*).html?$ index.php?act=profile_show&user=$1&step=$3 [NC] RewriteRule ^profile_show,(.*)-(.*).html?$ index.php?act=profile_show&user=$1 [NC] # Other # RewriteRule ^(.*),(.*),(.*),(.*),nb.html?$ index.php?act=$1&step=$2&add=$3&add2=$4&no_body=1 [NC] RewriteRule ^(.*),(.*),(.*),nb.html?$ index.php?act=$1&step=$2&add=$3&no_body=1 [NC] RewriteRule ^(.*),(.*),nb.html?$ index.php?act=$1&step=$2&no_body=1 [NC] RewriteRule ^(.*),(.*),(.*).html?$ index.php?act=$1&step=$2&add=$3 [NC] RewriteRule ^(.*),(.*).html?$ index.php?act=$1&step=$2 [NC] RewriteRule ^(.*).html?$ index.php?act=$1 [NC] </IfModule> Udostępnij ten post Link to postu Udostępnij na innych stronach
elcct 159 Zgłoś post Napisano Listopad 5, 2011 rewrite ^/profile_show,(.*),(.*),nb.html?$ /index.php?act=profile_show&user=$1&step=$2&no_body=1; rewrite ^/profile_show,(.*)-(.*),(.*).html?$ /index.php?act=profile_show&user=$1&step=$3; rewrite ^/profile_show,(.*)-(.*).html?$ /index.php?act=profile_show&user=$1; rewrite ^/(.*),(.*),(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&add=$3&add2=$4&no_body=1; rewrite ^/(.*),(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&add=$3&no_body=1; rewrite ^/(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&no_body=1; rewrite ^/(.*),(.*),(.*).html?$ /index.php?act=$1&step=$2&add=$3; rewrite ^/(.*),(.*).html?$ /index.php?act=$1&step=$2; rewrite ^/(.*).html?$ /index.php?act=$1; Pomocne: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/ Udostępnij ten post Link to postu Udostępnij na innych stronach
Quam 0 Zgłoś post Napisano Listopad 5, 2011 Ok dzieki Mam to umieścić w htaccess ? i powinno działać ? czy musze cos robic jeszcze w conf. Udostępnij ten post Link to postu Udostępnij na innych stronach
Portek 0 Zgłoś post Napisano Listopad 5, 2011 (edytowany) @UP szybszy, do kasacji. Powinno być okej: rewrite ^/profile_show,(.*),(.*),nb.html?$ /index.php?act=profile_show&user=$1&step=$2&no_body=1 last; rewrite ^/profile_show,(.*)-(.*),(.*).html?$ /index.php?act=profile_show&user=$1&step=$3 last; rewrite ^/profile_show,(.*)-(.*).html?$ /index.php?act=profile_show&user=$1 last; # Other # rewrite ^/(.*),(.*),(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&add=$3&add2=$4&no_body=1 last; rewrite ^/(.*),(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&add=$3&no_body=1 last; rewrite ^/(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&no_body=1 last; rewrite ^/(.*),(.*),(.*).html?$ /index.php?act=$1&step=$2&add=$3 last; rewrite ^/(.*),(.*).html?$ /index.php?act=$1&step=$2 last; rewrite ^/(.*).html?$ /index.php?act=$1 last; Edytowano Listopad 5, 2011 przez Portek (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
elcct 159 Zgłoś post Napisano Listopad 5, 2011 (edytowany) Ok dzieki Mam to umieścić w htaccess ? i powinno działać ? czy musze cos robic jeszcze w conf. Musisz to wrzucic tam gdzie masz skonfigurowanego hosta, czyli np. w /etc/nginx/sites-enabled/default w sekcji server {} nginx nie obsługuje plików htaccess Edytowano Listopad 5, 2011 przez elcct (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Quam 0 Zgłoś post Napisano Listopad 5, 2011 Zrobiłem ale nie dziła coś "404 Not Found" server { listen 80; root /home/www/portal; index index.html index.htm index.php; # Make site accessible from http://localhost/ server_name www.portal.domena.pl portal.domena.pl; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(.*)$; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/portal/$fastcgi_script_name; } location / { root /home/www/portal; index index.php; rewrite ^/profile_show,(.*),(.*),nb.html?$ /index.php?act=profile_show&user=$1&step=$2&no_body=1 last; rewrite ^/profile_show,(.*)-(.*),(.*).html?$ /index.php?act=profile_show&user=$1&step=$3 last; rewrite ^/profile_show,(.*)-(.*).html?$ /index.php?act=profile_show&user=$1 last; rewrite ^/(.*),(.*),(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&add=$3&add2=$4&no_body=1 last; rewrite ^/(.*),(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&add=$3&no_body=1 last; rewrite ^/(.*),(.*),nb.html?$ /index.php?act=$1&step=$2&no_body=1 last; rewrite ^/(.*),(.*),(.*).html?$ /index.php?act=$1&step=$2&add=$3 last; rewrite ^/(.*),(.*).html?$ /index.php?act=$1&step=$2 last; rewrite ^/(.*).html?$ /index.php?act=$1 last; } Udostępnij ten post Link to postu Udostępnij na innych stronach
Maq 73 Zgłoś post Napisano Styczeń 31, 2012 (edytowany) Pozwolicie się że podepnę się do tematu, mam taką regułkę w .htaccess: RewriteEngine On RewriteCond %{REQUEST_URI} \/([0-9,a-z,_,-,\!]+)$ [NC] RewriteRule ^(.*) show.php?%1 [L] Prosiłbym o przerobienie to na język zrozumiały dla nginx A tamten generator według mnie trochę nie bardzo sobie z tym poradził. Podjąłem męską decyzję migracji stron bo apache z nie wiadomych przyczyn zamula (choć dużo mądrzejsza ode mnie osoba z tego forum próbowała bezskutecznie znaleźć przyczynę) Edytowano Styczeń 31, 2012 przez Maq (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 31, 2012 Używając podanej wcześniej strony: if ($uri ~* "/([0-9a-z_-,!]+)$"){set $rule_0 1$rule_0; } if ($rule_0 = "1"){ rewrite / /; } Nie wiem czy przed ! nie warto dać \, żeby go nie zrozumiało jako przeczenia. Udostępnij ten post Link to postu Udostępnij na innych stronach
Maq 73 Zgłoś post Napisano Styczeń 31, 2012 dzięki, po testuję na dniach, bo mi tamta strona generowała jedynie: #ignored: condition 0if ($rule_0 = "1"){ rewrite / /; } w pierwszej kolejności poprzerzucam najpierw statyczne strony Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Luty 11, 2012 Wyrzuca błędy, bo za dużo przecinków tam dałeś. Warto pokombinować ze zmianą regexa na czas tłumaczenia, a potem wstawienia starego z Apache. Nie wiem czy wiesz, ale konstrukcja [0-9,a-z,_,-,\!]+ To dokładnie to samo co [0-9a-z,_-\!]+ , ponieważ przecinek powinieneś dodać tylko raz. Jeśli go nie dopuszczasz w danym stringu to w ogóle go nie podawaj. Przed myślnikiem też można spróbować dać \, bo wtedy może traktować _-\ jako zakres od podkreślnika do backslasha. Udostępnij ten post Link to postu Udostępnij na innych stronach
Maq 73 Zgłoś post Napisano Luty 11, 2012 Poradziłem sobie już wcześniej, przepisałem ręcznie kod według tutka znalezionego w necie. Udostępnij ten post Link to postu Udostępnij na innych stronach