Witam.
Jak poprawnie przekonwertować kod .htaccess, tak żeby działał na ngnix. Chodzi mi o sam kod.
Oryginał na apache:
php_value session.use_trans_sid 0
SecFilterEngine Off
SecFilterScanPOST Off
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?category=$1 [L]
Jak powinen wyglądać kod na ngnix?
Pozdrawiam
Hookz
(Gerard Zurek)
28 Wrzesień 2013 19:59
#2
nginx nie obsługuje w ogóle plików .htaccess:
(…)nginx nie obsługuje kilku mechanizmów udostępnianych przez inne serwery (takie jak Apache httpd czy lighttpd): lokalne pliki konfiguracyjne .htaccess uruchamianie prostych skryptów CGI[6] brak rozszerzenia Delta-V do protokołu WebDAV[7], koniecznego do implementacji dostępu do repozytoriów Subversion (realizowanego dla serwera Apache przez moduł mod_svn) Można za to przekonwertować plik htaccess, np: http://winginx.com/htaccess Wynikiem takiego działania będzie: # nginx configuration location / { if (-e $request_filename){ rewrite ^/(.*) /$1 break; } if (!-e $request_filename){ rewrite ^(.*)$ /index.php?category=$1 break; } } Pozdrawiam, Hookz PS. Lepiej sprawdzić ten kod, gdyż knwerter online nie jest doskonały i nieomylny… EDIT: Inny konwerter podaje za to kod: if (-f $request_filename){ set $rule_0 1$rule_0; } if ($rule_0 = “1”){ rewrite ^/(.*) /$1 last; } if (!-d $request_filename){ set $rule_1 1$rule_1; } if ($rule_1 = “1”){ rewrite ^/(.*)$ /index.php?category=$1 last; }
Tak wiem że ngnix nie obsługuje plików .htaccess, ale samo rewrite jest, po prostu muszę poprawny kod wpisać w konfiguracji ngnixa i zrestartować serwer. A że mam jedno podejście zależy mi na poprawności tego kodu, bo tak jak napisałeś
Więc który kod będzie poprawny? Znajomy podpowiadał mi żeby nie używać if’ów, ale nie wiem czy jest w ogóle taka możliwość.