16 Апреля 2009
TXP + lighttpd = Чистые ссылки
Да, плюс ещё прямые руки )
И без подсовывания обработчика 404!
Вот здесь нашёл пример, как реализуется субж. Чуть-чуть его расширил под свою файловую структуру и добавил обработку редиректов.
Для начала в /opt/etc/lighttpd/lighttpd.conf включаем (раскомментируем) загрузку mod_rewrite и mod_redirect:
server.modules = (
"mod_rewrite",
"mod_redirect",
.......
)
Потом добавляем такие правила:
url.rewrite-once = (
"^/files/.*" => "$0",
"^/images/.*" => "$0",
"^/rpc/.*" => "$0",
... другие папки ...
"^/textpattern/.*" => "$0",
"^(.*)$" => "/index.php/$1"
)
Этим мы сохранили обращения к перечисленным папкам напрямую, а все остальные запросы будет обрабатывать наш index.php. Можно смело идти в админку и включать понравившийся "Режим постоянных ссылок". Например, у меня сейчас режим /section/title.
Вторая задача. Бывает необходимо сохранить некий старый урл, уже раскрученный на других сайтах, и перенаправить его на новый урл в новой структуре сайта.
Например, по гугловскому скану я обнаружил, что достаточно много ресурсов ссылаются на страничку www.volkoff.ru/products.php, которой больше не существует. Но теперь у меня есть секция проектов, куда я хочу перенаправить эти обращения. Это делается так:
url.rewrite-once = (
....
"^/products.php$" => "$0",
....
"^(.*)$" => "/index.php/$1"
)
url.redirect = (
"^/products.php$" => "/projects/"
)
И вуаля.
Напоследок ещё одна красивость. Таки подсунем свой обработчик 404 для обращений к несуществующим файлам (не только txp-статьям!) вместо штатного вебсерверского:
## error-handler for status 404 #server.error-handler-404 = "/error-handler.html" server.error-handler-404 = "/index.php?id=-1"
Т.е. мы провоцируем его открыть несуществующую статью с номером -1, и он нам выдаст txp-страницу error-default, которой мы можем придать кошерный вид в админке.
Комментарии
В Apache это modrewrite? Знакомо.
— kabazyaba 09.05.29, 14:57 #
ага
— Alexey 10.02.05, 20:19 #