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

Nginx + rewrite

Polecane posty

Witam,

Mógłby mi powiedzieć ktoś jak bedzię wygladała regułka rewrite dla nginx?

 

Plik .htaccess

 

Options FollowSymLinks

RewriteEngine On

RewriteBase /p/

 

 

RewriteCond %{HTTP_HOST} !^www. [NC]

 

RewriteCond %{HTTP_HOST} ![0-9]$ [NC]

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301]

 

 

RewriteCond %{REQUEST_URI} ^\/$

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^(.*)$ pl/ [L]

 

 

RewriteRule ^(index.php)$ pl/$1 [L]

 

 

RewriteCond %{REQUEST_URI} ^/images.+$

RewriteRule ^.+(images/.+)$ pl/$1 [L]

 

 

RewriteRule ^(pl\/)([a-zA-Z0-9_-]+),{1}([0-9]+),{1}([0-9]+)$ $2,$3,$4 [R=301]

RewriteRule ^(pl\/)([a-zA-Z0-9_-]+),{1}([0-9]+)$ $2,$3 [R=301]

 

 

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)([a-zA-Z0-9_-]+),{1}([0-9]+),{1}([0-9]+)$ pl/index.php?id=$3&idd=$4 [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)([a-zA-Z0-9_-]+),{1}([0-9]+)$ pl/index.php?id=$3 [L]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To ja również mam prośbę o pomoc (a siedzę już kilka dobrych godzin..)

Przesiadka z apache na nginx poszła sprawnie, ale borykam się z jednym problemem dotyczącym rewrite

 

Mam taki config (pomijając sprawy elementarne)

 

Dwie lokacje

w katalogu głównym siedzi sobie wordpress, a w katalogu forum, forum punbb

 

root   /home/romek/www/site_pl;
index  index.php index.html index.htm;

location / # tu siedzi wordperss i działa
{ 	try_files $uri $uri/ /index.php;

}

location /forum # tutaj forum i przepisywanie adresów nihuhu
{ 
rewrite ^/f([0-9]+)(.*).html$ /viewforum.php?id=$1 last;
rewrite ^/t([0-9]+)(.*).html$ /viewtopic.php?id=$1 last;
rewrite ^/p([0-9]+)(.*).html$ /viewtopic.php?pid=$1 last;
rewrite ^/(.*).rss$ /extern.php?action=$1&type=rss last;
}

 

oryginalny plik .htaccess

 

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /forum
RewriteRule ^f([0-9]+)(.*).html$ viewforum.php?id=$1 [L]
RewriteRule ^t([0-9]+)(.*).html$ viewtopic.php?id=$1 [L]
RewriteRule ^p([0-9]+)(.*).html$ viewtopic.php?pid=$1 [L]
RewriteRule ^(.*).rss$ extern.php?action=$1&type=rss [L]

 

Czy te regułki są ok ? Niestety rewrite na forum nie działa jak trzeba. Chyba tylko jeden rodzaj odnośników...

Dziękuję za pomoc

Tomek

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może zadam pytanie prościej ;)

 

 root   /home/www/site_pl/;
index  index.php index.html index.htm;

location /forum 
{
rewrite ^/f([0-9]+)(.*).html$ /viewforum.php?id=$1 last;
rewrite ^/t([0-9]+)(.*).html$ /viewtopic.php?id=$1 last;
rewrite ^/p([0-9]+)(.*).html$ /viewtopic.php?pid=$1 last;
rewrite ^/(.*).rss$ /extern.php?action=$1&type=rss last;
}

 

Jest dobrze w stosunku do apachowego htaccess ? Korzystałem z tego narzędzia http://www.anilcetin...ccess-to-nginx/

 

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /forum
RewriteRule ^f([0-9]+)(.*).html$ viewforum.php?id=$1 [L]
RewriteRule ^t([0-9]+)(.*).html$ viewtopic.php?id=$1 [L]
RewriteRule ^p([0-9]+)(.*).html$ viewtopic.php?pid=$1 [L]
RewriteRule ^(.*).rss$ extern.php?action=$1&type=rss [L]

 

Nie mogę sobie z tym poradzić i tylko to mnie trzyma przed migracją. HELP :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

location / 
{
rewrite ^/forum/f([0-9]+)(.*)\.html$ /forum/viewforum.php?id=$1 last;
rewrite ^/forum/t([0-9]+)(.*)\.html$ /forum/viewtopic.php?id=$1 last;
rewrite ^/forum/p([0-9]+)(.*)\.html$ /forum/viewtopic.php?pid=$1 last;
rewrite ^/forum/(.*)\.rss$ /forum/extern.php?action=$1&type=rss last;
}

 

Może tak ? ;)

Edytowano przez Proflo (zobacz historię edycji)
  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

location / 
{
rewrite ^/forum/f([0-9]+)(.*)\.html$ /forum/viewforum.php?id=$1 last;
rewrite ^/forum/t([0-9]+)(.*)\.html$ /forum/viewtopic.php?id=$1 last;
rewrite ^/forum/p([0-9]+)(.*)\.html$ /forum/viewtopic.php?pid=$1 last;
rewrite ^/forum/(.*)\.rss$ /forum/extern.php?action=$1&type=rss last;
}

 

Może tak ? ;)

 

Nie odpowiedziałem, a może się komuś przyda. Tak, w tej formie wszystko działa. Musi to być najwyraźniej wszystko w sekcji "/"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam pytanko, bo nie mogę sobie poradzić z odpaleniem jednego skryptu

 

Oryginalny htaccess wygląda tak

RewriteBase /
RewriteRule !(\.(php|jpg|jpeg|png|gif|ico|css|ppt|pdf|js|swf|flv|htm|txt)$) index.php [NC,L]

 

Czy wersja na nginx będzie wyglądała po prostu tak?

 

rewrite /!(\.(php|jpg|jpeg|png|gif|ico|css|ppt|pdf|js|swf|flv|htm|txt)$) /index.php last;

 

Wklejam to do konfiguracji danego vhosta, ładnie restartuję, ale dostaję 404.

Dzięki za pomoc

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

location ~ .php$ {

root /home/services/httpd/$host/;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi_params;

}

 

Do tego rewrite:

 

 

location / {

root /home/services/httpd/$host/;

index index.php index.html;

 

if (!-e $request_filename) {

rewrite ^/(.*)$ /index.php last;

break;

}

}

 

 

 

 

.htaccess z gekosale więc próbuj z w/w regułkami.

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dziękuję za pomoc tutaj, jak i na forum wsparcia GekoSale. Problem rozwiązany :)

Pozdrawiam

Tomek

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Witam.

Moglbym rownież prosić o przepisanie kilku regulek pod nginx ? Ten encoder co tu widzialem wyzej w postach nei radzi sobie z tym..

 

 

RewriteEngine On
Options +FollowSymLinks

RewriteRule ^i/w([0-9]+)/(.*)$ images/img.php?width=$1&img=$2 [L]
RewriteRule ^images/(.*)$ images/$1 [L]
RewriteRule ^js/(.*)$ js/$1 [L]
RewriteRule ^css/(.*?)$ css/$1 [L]

RewriteRule !\.(php)$ index.php

Order Allow,Deny
Allow from all

 

 

z gory dzieki

Edytowano przez hafcior (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

podepne się do tematu, pomoze mi ktos przepisać regułki pod nginx

 

z góry wielkie dzięki:

 

 

#Options FollowSymLinks

 

RewriteEngine on

 

RewriteRule ^vardata/(.*).php$ [R=404,L]

RewriteRule ^([a-zA-Z0-9_-]+).html$ index.php?op=$1

RewriteRule ^([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+).html$ index.php?op=$1&do=$2

RewriteRule ^([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+).html$ index.php?op=$1&do=$2&id=$3

RewriteRule ^([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+).html$ index.php?op=$1&do=$2&id=$3&qs=$4

RewriteRule ^([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+).html$ index.php?op=$1&do=$2&id=$3&qs=$4&ne=$5

RewriteRule ^([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+).html$ index.php?op=$1&do=$2&id=$3&qs=$4&ne=$5&nr=$6

RewriteRule ^([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+).html$ index.php?op=$1&do=$2&id=$3&qs=$4&ne=$5&nr=$6&ha=$7

RewriteRule ^([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+),([a-zA-Z0-9_-]+).html$ index.php?op=$1&do=$2&id=$3&qs=$4&ne=$5&nr=$6&ha=$7&hs=$8 [L]

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ć  

×