Спасибо Павел и Игорь за развернутые ответы! Очень полезно.
Размещу ссылку на это обсуждение на сайте разработчиков 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;