ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Подскажите хороший реврайт GET-параметров


  • To: nginx-ru@xxxxxxxxx
  • Subject: Подскажите хороший реврайт GET-параметров
  • From: "nikolayb" <nginx-forum@xxxxxxxx>
  • Date: Wed, 08 Feb 2012 06:07:33 -0500
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=tp63uRFm3Rpmnb6HGoOyKmjr9kZVHQ1Ww+VsAi0L5PU=; b=ScLVhvJD6lINLtzRMezOSDXCpG9uxd/tHN2AbXsSXzc+D2NE024qTMXO1zNteAHBXRQ2mL8+Pevb18Xihvfa7KtNh/KKSuebIB4LGS/x1Eja5jmFjQ32+KsMzkOBlr19;

Здравствуйте!

Появилась задача сделать реврайт
GET-параметров для SEO. Хочется не
наступать на грабли плохих конфигов,
поэтому я прошу подсказать знатоков
правильные решения.

www.site.ru/katalog/products/path/to/category/?act=srch&catid=100&pr=Producer_Name&pf=1&subcats=1
www.site.ru/katalog/products/path/to/category?act=srch&catid=100&pr=Producer_Name&pf=1&subcats=1
в
www.site.ru/katalog/products/path/to/category/Producer_Name

и

www.site.ru/katalog/products/path/to/category/?=&act=srch&catid=100&pr=Producer_Name&ffv=1&pf=1&subcats=1
www.site.ru/katalog/products/path/to/category?=&act=srch&catid=100&pr=Producer_Name&ffv=1&pf=1&subcats=1
в
www.site.ru/katalog/products/path/to/category/Producer_Name

На апаче такая задача решилась так:

RewriteCond %{REQUEST_URI} ^/katalog/products/(?:.*)(?:/?)$
RewriteCond %{QUERY_STRING}
^act=srch&catid=(?:.*)&pr=(.*)&pf=1&subcats=1$ [OR]
RewriteCond %{QUERY_STRING}
^=&act=srch&catid=(?:.*)&pr=(.*)&ffv=1&pf=1&subcats=1$
RewriteRule ^(.*?)(?:/?)$ http://www.site.ru/$1/%1? [L,R=301]

Вопрос: можно ли перенести это в nginx и
если да, то как эффективнее это
сделать?

Конфиг сервера простой:

server {
    listen       192.168.1.1:80;
    server_name  www.site.ru;
    access_log   /home/htdocs/www.site.ru/logs/nginx.log;
    location ~ /\.ht {
        deny  all;
    }
    location / {
        proxy_pass http://backend;
    }
}

По идее нужно создать локейшн для
/katalog/products/(?:.*)(?:/?) с rewrite внутри. Но тогда
возникает вопрос - как собрать бэклинки
в rewrite $1 от локейшена и %1 от GET параметра
из, допустим, if ($args ~* %reg%)

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,222103,222103#msg-222103

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.