Re: Преобразование настроек mod rewrite

hdcoder nginx-forum на nginx.us
Пн Июн 6 19:37:46 MSD 2011


Спасибо Павел и Игорь за развернутые
ответы! Очень полезно.
Размещу ссылку на это обсуждение на
сайте разработчиков Cotonti. )

Самое смешное, что разработчики Cotonti, во
всяком случае некоторые, понимают, что
более разумно было бы сделать все
запросы через один файл, как это
реализовано в Drupal. Просто, как я понял,
пока верх берет привязанность
пользователей движка к текущей
реализации запросов через несколько
файлов. Пока это так, что-то менять не
разумно, т.к. они наоборот стремятся все
упростить и сделать код более
прозрачным. Надеюсь разум все же
возьмет верх и правильная
оптимизированная работа со ссылками
все же появится в Cotonti, тем более что
этот движок изначально затачивается
главным образом под скорость (+
безопасность).

PS: Сегодня мне кстати дали образец
настроек nginx под более красивые ссылки
(см. ниже). Я про этот вариант говорил.
Пока это видимо считается лучшим для
Cotonti, поскольку именно это используется
на его родном сайте. Меня, если честно,
такой объем строк пугает. ) Но может
быть он все же более быстр в работе чем
итерации с двумя строчками.

----

# File protection
location ~ \.(tpl|dat)$ {
    deny all;
}


### DEFAULT PATH PROTECTION ###
#rewrite "\.(js|css)$" /rc.php?uri=$request_filename last;
rewrite "^/(datas|images|js|thms|reference|vids)/(.*)$" /$1/$2 last;

### Donations ###
rewrite "^/donate-thankyou" /plug.php?e=donations&m=return last;
rewrite "^/donate" /plug.php?e=donations last;

### Version Update Check ###
rewrite "^/update-check" /plug.php?r=updatecheck last;

### IRC Chat ###
rewrite "^/chat" /plug.php?e=qwebirc last;

### Combined pages & lists ###

# Level 4
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/([0-9]+)"
/page.php?id=$5 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/add$"
/page.php?m=add&c=$4 last;
rewrite "^/docs/([a-z-]+)/([a-z-]+)/([a-z\-]+)/add$"
/page.php?m=add&c=docs-$1-$2-$3 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-zA-Z0-9\-_]+)"
/page.php?al=$5 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/"
/page.php?c=$4 last;
rewrite "^/docs/([a-z\-]+)/([a-z\-]+)/([a-z\-]+)/"
/page.php?c=docs-$1-$2-$3 last;

# Level 3
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([a-z0-9\-]+)/([a-z0-9\-]+)/([0-9]+)"
/page.php?id=$4 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news)/([a-z0-9\-]+)/([a-z0-9\-]+)/add$"
/page.php?m=add&c=$3 last;
rewrite "^/docs/([a-z-]+)/([a-z-]+)/add$" /page.php?m=add&c=docs-$1-$2
last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-zA-Z0-9\-_]+)"
/page.php?al=$4 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news)/([a-z0-9\-]+)/([a-z0-9\-]+)/"
/page.php?c=$3 last;
rewrite "^/docs/([a-z\-]+)/([a-z\-]+)/" /page.php?c=docs-$1-$2 last;

# Level 2
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([a-z0-9\-]+)/([0-9]+)"
/page.php?id=$3 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news)/([a-z0-9\-]+)/add$"
/page.php?m=add&c=$2 last;
rewrite "^/docs/([a-z\-]+)/add[^a-z]?" /page.php?m=add&c=docs-$1 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([a-z0-9\-]+)/([a-zA-Z0-9\-_]+)"
/page.php?al=$3 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news)/([a-z0-9\-]+)/"
/page.php?c=$2 last;
rewrite "^/docs/([a-z\-]+)/" /page.php?c=docs-$1 last;

# Level1
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([0-9]+)"
/page.php?id=$2 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/add$"
/page.php?m=add&c=$1 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/([a-zA-Z0-9\-_]+)"
/page.php?al=$2 last;
rewrite
"^/(articles|download|extensions|themes|locales|addons|news|docs)/"
/page.php?c=$1 last;

### PASTEBIN ###
rewrite "^/pastebin/([a-zA-Z0-9\._\-\%]+)-([a-zA-Z0-9\._\-\%]+)"
/plug.php?e=pastebin&m=$1&id=$2 last;
rewrite "^/pastebin/adm" /plug.php?e=pastebin&m=adm last;
rewrite "^/pastebin/([0-9]+)$" /plug.php?e=pastebin&m=view&id=$1 last;
rewrite "^/pastebin/" /plug.php?e=pastebin last;

### USERS ###
rewrite "^/users/register\.html$" /users.php?m=register last;
rewrite "^/users/password-recover\.html$" /plug.php?e=passrecover last;
rewrite "^/users/([^?]+)$" /users.php?m=details&u=$1 last;
rewrite "^/users/" /users.php last;

### SHOWCASE ###
rewrite "^/showcase/([^/&?#]+)(.*)$" /plug.php?id=$1&e=showcase$2 last;
rewrite "^/showcase/(.*)$" /plug.php?e=showcase$1 last;

### SITEMAP ###
rewrite "^/sitemap\.xml$" /plug.php?r=an_sitemap&out=xml last;

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




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