Реврайты под nginx

Post Reply
Semen_ssr
Posts: 867
Joined: Sun Apr 25, 2010 7:59 pm

Реврайты под nginx

Post by Semen_ssr »

Очередной вопрос мне в асю. Без особой лирики, если самому не одолеть, а админы мягко говоря не разбираются:

Code: Select all

rewrite ^/gallery/(.*)/(.*)/index.html$ /scj/cgi/out.php?link=images/$query_string&url=content&content_id=$2 last;
rewrite ^/gallery/(.*)/(.*)/index.html$ /scj/tube/?content_id=$2 last;
rewrite ^/gallery/(.*)/(.*)/$ /scj/tube/?content_id=$2 last;
rewrite ^/gallery/(.*)/(.*)/(.*).html$ /scj/tube/?content_id=$2&item_id=$3 last;
rewrite ^/gallery/([^/]+)/index.html$ /scj/cgi/out.php?link=images/$query_string&url=content&slug=$1 last;
rewrite ^/gallery/([^/]+)/index.html$ /scj/tube/?slug=$1 last;
rewrite ^/gallery/([^/]+)/$ /scj/tube/?slug=$1 last;
rewrite ^/gallery/([^/]+)/(.*).html$ /scj/tube/?slug=$1&item_id=$2 last;
rewrite ^/category/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&p=100&skip_to_cookie=true&skip_sell=true&group_name=$1&order=ctr last;
rewrite ^/category/([^/]+)/$ /scj/tube/index.php?group_name=$1 last;
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&p=100&skip_to_cookie=true&skip_sell=true&group_name=$1&order=$2&page=$3 last;
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/$ /scj/tube/index.php?group_name=$1&order=$2&page=$3 last;
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&p=100&skip_to_cookie=true&skip_sell=true&group_id=$1&order=$3&page=$4 last;
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /scj/tube/index.php?group_id=$1&order=$3&page=$4 last;
rewrite ^/tag/(.*)/$ /scj/tube/index.php?tag=$1;
rewrite ^/search/(.*)/(.*)/(.*)/(.*)/$ /scj/tube/index.php?search_type=$1&search=$2&order=$3&page=$4;
rewrite ^/action/(.*)/(.*)/$ /scj/tube/index.php?action=$1&action_params=$2 last;
rewrite ^/action/(.*)$ /scj/tube/index.php?action=$1 last;
rewrite ^/go/(.*)/$ /scj/tube/?action=sponsor&sponsor_slug=$1& last;
rewrite ^/search_log/(.*)/$ /scj/tube/?search_log=all&page=$1& last;
rewrite ^/sponsor/(.*)/$ /scj/tube/?sponsor_slug=$1&force_template=sponsor_page last;
rewrite ^/sponsor_galleries/(.*)/(.*)/$ /scj/tube/?sponsor_slug=$1&page=$2&force_template=sponsor_list last;
rewrite ^/models/$ /scj/tube/?force_template=model_list last;
rewrite ^/models/(.*)/$ /scj/tube/?force_template=model_list&model_first_letter=$1 last;
rewrite ^/model/(.*)/(.*)/(.*)/$ /scj/tube/?model_slug=$1&force_template=model_galleries&order=$2&page=$3 last;
rewrite ^/model/(.*)/$ /scj/tube/?model_slug=$1&force_template=model_galleries last;
rewrite ^/report/(.*)/$ /scj/tube/?content_id=$1&force_template=content_report last;
Если есть желание понять то: http://smartcj.com/wiki/doku.php?id=ru:nginx

Как это сделать самому:
1. PuTTY - скачать эту простенькую утилиту.
Image
Законнектится к серверу ввести IP/root/root pass(для тех кто в первый раз - вводится пароль но его не видно, но он воодится все в порядке, либо же вставить его через shift+insert)/жмем enter.
2. Самый распространенный файловый менеджер это Midnight Commander, скорее всего он и стоит, если нет - опять же к админам чтобы поставили. Если стоит набираем в строке mc и жмем enter. Должно появится знакомое окно:
Image
3. Нужно найти файл конфига example.com.conf, лежит он где то /usr/local/etc/nginx/extra/
4. Найти и перейти в режим редактирования F4
5. Скопировать реврайт тот что выше и вставить его в файл example.com.conf при помощи shift+insert.
6. F2 - сохранить
7. F10 - выйти
8. В строке: /usr/local/etc/rc.d/nginx configtest - должно написать что все ok (если нет - то что-то не так скопипастилось переходим к пункту 3), тогда рестартуем сам nginx, снова в строке: /usr/local/etc/rc.d/nginx restart
9. Все, жизнь удалась.

Диры вроде /gallery/, /models/, /category/ - можно менять на что угодно и придать уникальность.
admin
Site Admin
Posts: 38005
Joined: Wed Sep 10, 2008 11:43 am

Re: Реврайты под nginx

Post by admin »

поправочка в список реврайтов

Code: Select all

#old style
if ($args) {
rewrite ^/gallery/(.*)/(.*)/index.html$ /scj/cgi/out.php?link=images/$query_string&url=content&content_id=$2 last;
}
rewrite ^/gallery/(.*)/(.*)/index.html$ /scj/tube/?content_id=$2 last;
rewrite ^/gallery/(.*)/(.*)/$ /scj/tube/?content_id=$2 last;
rewrite ^/gallery/(.*)/(.*)/(.*).html$ /scj/tube/?content_id=$2&item_id=$3 last;

#style 2.0
if ($args) {
rewrite ^/gallery/([^/]+)/index.html$ /scj/cgi/out.php?link=images/$query_string&url=content&slug=$1 last;
}
rewrite ^/gallery/([^/]+)/index.html$ /scj/tube/?slug=$1 last;
rewrite ^/gallery/([^/]+)/$ /scj/tube/?slug=$1 last;
rewrite ^/gallery/([^/]+)/(.*).html$ /scj/tube/?slug=$1&item_id=$2 last;

if ($args) {
rewrite ^/category/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&p=100&skip_to_cookie=true&skip_sell=true&group_name=$1&order=ctr last;
}
rewrite ^/category/([^/]+)/$ /scj/tube/index.php?group_name=$1 last;
if ($args) {
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&p=100&skip_to_cookie=true&skip_sell=true&group_name=$1&order=$2&page=$3 last;
}
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/$ /scj/tube/index.php?group_name=$1&order=$2&page=$3 last;

if ($args) {
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&p=100&skip_to_cookie=true&skip_sell=true&group_id=$1&order=$3&page=$4 last;
}
rewrite ^/category/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /scj/tube/index.php?group_id=$1&order=$3&page=$4 last;

rewrite ^/tag/(.*)/$ /scj/tube/index.php?tag=$1;
rewrite ^/search/(.*)/(.*)/(.*)/(.*)/$ /scj/tube/index.php?search_type=$1&search=$2&order=$3&page=$4;
rewrite ^/action/(.*)/(.*)/$ /scj/tube/index.php?action=$1&action_params=$2 last;
rewrite ^/action/(.*)$ /scj/tube/index.php?action=$1 last;

rewrite ^/go/(.*)/$ /scj/tube/?action=sponsor&sponsor_slug=$1& last;
rewrite ^/search_log/(.*)/$ /scj/tube/?search_log=all&page=$1& last;

rewrite ^/sponsor/(.*)/$ /scj/tube/?sponsor_slug=$1&force_template=sponsor_page last;
rewrite ^/sponsor_galleries/(.*)/(.*)/$ /scj/tube/?sponsor_slug=$1&page=$2&force_template=sponsor_list last;

rewrite ^/models/$ /scj/tube/?force_template=model_list last;
rewrite ^/models/(.*)/$ /scj/tube/?force_template=model_list&model_first_letter=$1 last;
rewrite ^/model/(.*)/(.*)/(.*)/$ /scj/tube/?model_slug=$1&force_template=model_galleries&order=$2&page=$3 last;
rewrite ^/model/(.*)/$ /scj/tube/?model_slug=$1&force_template=model_galleries last;

rewrite ^/report/(.*)/$ /scj/tube/?content_id=$1&force_template=content_report last;
Don't forget to run script update
Post Reply