mod_rewrite + mysql

mulder

Guest
mod_rewrite + mysql

Встретил на одном сайте УРЛ типа
www.servername.com/cat_name/subcat_name/program_name.php

Расскажите как такое делается. Очень надо!

Сделать так
www.servername.com/cat_id/subcat_id/program_id.php
с помощью mod_rewrite умею, а вот как он обрабатывает имена категорий, ведь они находятся в базе?

Что можно mod_rewrite как-то связать с mysql?
Или делается редирект любого УРЛ на скрипт который по именам категорий находит их ИД и потом перенаправляет на нужный пхп-шный файл?
 

Demiurg

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

McUrex_

ururunet
Можно и то и то, в первом случае можно взять за основу модуль для апача, работающий с мусклом (к примеру модуль авторизации по 401 хидеру, пользователи которого лежат в мускле) и подхачить под свои задачи. Но в данном случае, имхо проще и понятней для Вас будет воспользоваться очень хорошим советом г-на Demiurg'а, а именно любые запросы "пропускать" через каталожный скрипт, сам по себе разбирающийся куда и кого отправить.
 

fixxxer

К.О.
Партнер клуба
Если недоступен (или по каким-то причинам не подходит) mod_rewrite, можно использовать FilesMatch и Throw:
PHP:
Action throw /index.php
<FilesMatch (.*)>
ForceType throw
</FilesMatch>
<FilesMatch index.php>
ForceType application/x-httpd-php
</FilesMatch>
и разбирать урл уже в index.php.
 

mulder

Guest
Автор оригинала: Demiurg
все нераспознаные урлы отправляй на определенный скрипт, он то и будет проверять, что у тебя в базе есть, а чего нету.
А как с него переправить дальше? Через header(location) ведь изменится УРЛ, а ведь вся суть использования mod_rewrite в удобном УРЛе и нормальной регистрации в поисковиках.

Не держать же весь код всего сайта в одном скрипте?
 

Demiurg

Guest
С него не надо никуда перенаправлять, он просто должен передавать работу соответсвующим скриптам (инклудить их например)
 

Crazy

Developer
Re: mod_rewrite + mysql

Автор оригинала: mulder
Что можно mod_rewrite как-то связать с mysql?
Легко. Специально для любителей приключений в mod_rewrite опция RewriteMap имеет вариант "External rewriting program". Очень экстремально.
 
Сверху