Re: htaccess для nginx

Sergey Shepelev temotor на gmail.com
Ср Апр 21 11:29:48 MSD 2010


2010/4/21 Rollex <nginx-forum at nginx.us>:
> Народ выручайте, бьюсь уже неделю не могу верно написать правила под nginx от htaccess
> Содержимое файла htaccess
>
> Options +FollowSymLinks
>
> RewriteEngine on
> RewriteBase  /
>
> RewriteRule   ^users/(.*)\.html$ user.php?user=$1&%{QUERY_STRING}
>
> RewriteRule   ^PhotoSharing/({1})(.*)$ out.php?$1=$2&%{QUERY_STRING}
> RewriteRule   ^ImageHosting/(.*)$ show.php?img=$1&%{QUERY_STRING}
>
> RewriteRule   ^gallery/([0-9]+)-([^/]*)/(.*)$ gallery.php?gal=$1&img=$3
> RewriteRule   ^viewimg/([0-9]+)-([^/]*)/(.*)$ gallery_body.php?gal=$1&img=$3
>
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,77263,77263#msg-77263
>

Шаблон для каждого из этих правил будет такой:

# отдельный location, чтоб на каждом запросе не выполнять несколько регекспов.
location /users {
  # регекспы как в htaccess, только от ^/
  # &%{QUERY_STRING} nginx добавляет сам, для этого ничего писать не надо
  # в конце ставим last, чтобы сразу после реврайта nginx искал
подходящий локейшн
  rewrite ^/users/(.*)\.html$  /user.php?user=$1 last;
}

Про gallery и viewimg чуть-чуть интереснее, там нет %{QUERY_STRING},
чтобы nginx автоматически её не добавлял, нужно в конце строки замены
поставить '?'.

location /gallery {
  rewrite ^/gallery/([0-9]+)-([^/]*)/(.*)$ /gallery.php?gal=$1&img=$3? last;
}

>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>


Подробная информация о списке рассылки nginx-ru