2mrtt
немного расшифрую htaccess который я привел:
RewriteCond $1 ^(comments|category|404|library|P[0-9]{2,8}) [NC]
RewriteRule ^(.*)$ /index.php/site/$1 [L]
в случае если в 1 сегменте будет присотсвовать какое либо выражение перечисленное через логическое ИЛИ в квычках, то внутри сервера урл будет иметь вид /index.php/site/{наш_первый сегмент} и выводится соответсвующий шаблон.
Таже самая логика и в случае с разделами форума, галерии, поиска и т.п., но так как это все же группы, пришлось прописать их отдельной строкой дабы они не были подгруппой site
RewriteCond $1 ^(forums|gallery|member|search|site) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]
в 404 шаблоне нам приходится принудительно прописывать отдачу заголовка ошибки, т.к. в принципе, по своей свой структуре шаблоны для этого не предназначены (ну нет там тип страницы - 404 ).
(хотя... это идея для расширения. Есть же различные css, js типы - можно добавить еще типы шаблона “error_”)
Все остальные страницы, с 1 сегментом, которые мы не перечислили в наших условиях, будут восприниматься сервером так, как мы их видим. То есть урл index.php/site/comment/id/ будет обрабатываться так же корректно.
минус данного способа только в том, что нужно прописать все первые сегменты (но на самом деле, их не так уже и много). На сайте EE есть схема как это генерировать автоматически, но я считаю это неоправданной нагрузкой на сервер.
Sarmat
Вы проверили приведенный мной код? Я его немного подправил, т.к. забыл про RewriteEngine On и оставил ненужную строчку.