Skocz do zawartości
Zaloguj się, aby obserwować  
1q2w3e4r

rewrite w nginx

Polecane posty

Witam,

 

Próbowałem tą regułkę:

Options +FollowSymLinks
RewriteEngine on
##point to installation directory
##if it is the root dir,enter /
##else /otherdir
RewriteBase  /
RewriteCond %{QUERY_STRING} ^d=([a-zA-Z0-9]{8,12})$
RewriteRule ^$ download.php?id=%1&type=1 [L]
RewriteCond %{QUERY_STRING} ^d=([a-zA-Z0-9]{12,16})$
RewriteRule ^$ delete.php?id=%1 [L]
RewriteRule   ^file/([0-9]+)/(.*)$ download.php?id=$1&name=$2&type=2&%{QUERY_STRING} [L]
RewriteRule   ^([a-z]{2})/file/([0-9]+)/(.*)$ download.php?setlang=$1&id=$2&name=$3&type=2 [L]
RewriteRule   ^myfolders/([0-9]+)-(.*)$ folders.php?fid=$1&name=$3&%{QUERY_STRING} [L]
RewriteRule   ^([a-z]{2})/myfolders/([0-9]+)-(.*)$ folders.php?setlang=$1&fid=$2&name=$3&%{QUERY_STRING} [L]
RewriteRule   ^topfiles/$ top.php [L]
RewriteRule   ^([a-z]{2})/topfiles/$ top.php?%{QUERY_STRING} [L]
RewriteRule   ^topfiles/index([0-9]*)\.html$ top.php?s=$1&%{QUERY_STRING} [L]
RewriteRule   ^([a-z]{2})/topfiles/index([0-9]*)\.html$ top.php?setlang=$1&s=$2&%{QUERY_STRING} [L]
RewriteRule ^([a-z]{2})$ ?setlang=$1 [QSA,L]
RewriteRule ^([a-z]{2})/$ ?setlang=$1 [QSA,L]
RewriteRule ^([a-z]{2})/(.*)\.php$ $2.php?setlang=$1 [QSA,L]
RewriteRule ^content/([0-9a-zA-Z]+)\.html$ page_template.php?page=$1 [QSA,L]
<IfModule mod_security.c>
 # Turn off mod_security filtering.
 SecFilterEngine Off
 # The below probably isn't needed,
 # but better safe than sorry.
 SecFilterScanPOST Off
</IfModule>

 

Przekonwertować na stronie:

http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

i wyszło tak:

if ($args ~ "^d=([a-zA-Z0-9]{8,12})$"){
set $rule_0 1$rule_0;
set $bref_1 $1;
}
if ($rule_0 = "1"){
rewrite ^/$ /download.php?id=$bref_1&type=1 last;
}
if ($args ~ "^d=([a-zA-Z0-9]{12,16})$"){
set $rule_1 1$rule_1;
set $bref_1 $1;
}
if ($rule_1 = "1"){
rewrite ^/$ /delete.php?id=$bref_1 last;
}
if ($rule_2 = ""){
rewrite / /;
}
if ($rule_3 = ""){
rewrite / /;
}
if ($rule_4 = ""){
rewrite / /;
}
if ($rule_5 = ""){
rewrite / /;
}
if ($rule_6 = ""){
rewrite / /;
}
if ($rule_7 = ""){
rewrite / /;
}
if ($rule_8 = ""){
rewrite / /;
}
if ($rule_9 = ""){
rewrite / /;
}
if ($rule_10 = ""){
rewrite ^/([a-z]{2})$ /?setlang=$1 last;
}
if ($rule_11 = ""){
rewrite ^/([a-z]{2})/$ /?setlang=$1 last;
}
if ($rule_12 = ""){
rewrite ^/([a-z]{2})/(.*).php$ /$2.php?setlang=$1 last;
}
if ($rule_13 = ""){
rewrite ^/content/([0-9a-zA-Z]+).html$ /page_template.php?page=$1 last;
}

 

Nie wszystko chyba przerobiło, a dodatkowo chyba z błędami.

Bardzo proszę o ewentualne poprawki.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Na razie zrobiłem tak jak poniżej. Proszę o sprawdzenie.

 

 

if ($args ~ "^d=([a-zA-Z0-9]{8,12})$"){
  rewrite ^/$ /download.php?id=$1&type=1 last;
}

if ($args ~ "^d=([a-zA-Z0-9]{12,16})$"){
  rewrite ^/$ delete.php?id=$1 last;
}

rewrite ^/file/([0-9]+)/(.*)$ /download.php?id=$1&name=$2&type=2&%{QUERY_STRING} last;
rewrite ^/([a-z]{2})/file/([0-9]+)/(.*)$ /download.php?setlang=$1&id=$2&name=$3&type=2 last;
rewrite ^/myfolders/([0-9]+)-(.*)$ /folders.php?fid=$1&name=$3&%{QUERY_STRING} last;
rewrite ^/([a-z]{2})/myfolders/([0-9]+)-(.*)$ /folders.php?setlang=$1&fid=$2&name=$3&%{QUERY_STRING} last;


rewrite ^/topfiles/$ /top.php last;
rewrite ^/([a-z]{2})/topfiles/$ /top.php?%{QUERY_STRING} last;
rewrite ^/topfiles/index([0-9]*)\.html$ /top.php?s=$1&%{QUERY_STRING} last;
rewrite ^/([a-z]{2})/topfiles/index([0-9]*)\.html$ /top.php?setlang=$1&s=$2&%{QUERY_STRING} last;

rewrite ^/([a-z]{2})$ /?setlang=$1 last;
rewrite ^/([a-z]{2})/$ /?setlang=$1 last;
rewrite ^/([a-z]{2})/(.*)\.php$ /$2.php?setlang=$1 last;

rewrite ^/content/([0-9a-zA-Z]+)\.html$ /page_template.php?page=$1 last;

 

A tego to w ogóle nie ogarniam:

<IfModule mod_security.c>
 # Turn off mod_security filtering.
 SecFilterEngine Off

 # The below probably isn't needed,
 # but better safe than sorry.
 SecFilterScanPOST Off
</IfModule>

 

Jak mam to przerobić na nginx ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam

Nie będę zakładał nowego wątku, bo rzecz o tym samym traktuje. Niestety nie czuję się na siłach w regułach i bardzo prosiłbym o pomoc.

Potrzebuję przenieść aplikację mediawiki z subdomeny do katalogu w domenie głównej.

Czyli aktualnie jest:

 

www.wiki.site.com/

 

a chciałbym przepisać adresy na

 

ww.site.com/wiki/

 

Dziękuję za pomoc i pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×