mod_rewrite, .htaccess подключение к базе данных mysql

Я хотел бы, чтобы mod_rewrite в файле .htaccess ссылался на базу данных mysql, чтобы предоставить мне информацию о сопоставлении.

В частности, я использую единую кодовую базу для размещения нескольких сайтов, поэтому... если пользователь запрашивает изображение, например: http://www.example.com/images/car.jpg

это ударит по моему серверу, и многие другие сайты также будут использовать эту папку /images, поэтому мне нужно, чтобы Apache ответил: /home/example/pubic_html/images/7383/car.jpg

Обратите внимание на инъекцию «7383», которая является примером идентификатора сайта для этого пользователя.

По сути, я хочу сопоставить между example.com и 7383, используя базу данных mysql, а затем передать пользователю правильный файл.

Есть идеи?


person Simon    schedule 16.01.2009    source источник


Ответы (2)


Вы можете использовать скрипт в качестве карты перезаписи, чтобы получить настоящий путь.

person Gumbo    schedule 16.01.2009
comment
Был там. Сделано это. Работает отлично. - person David Schmitt; 16.01.2009

RewriteMap — это правильная функциональность Apache для использования. Спасибо Гамбо.

Что нужно отметить, когда я работал над этим:

  • RewriteMap входит в вашу конфигурацию Apache, а не в файл .htaccess.
  • Я написал сценарий для создания текстового файла сопоставления, который будет выполнять сопоставление, которое у меня было выше. По сути, он выгружает из базы данных все, что необходимо — поскольку мой не меняется каждую минуту, я могу просто запускать периодический дамп в этот текстовый файл всякий раз, когда добавляется или изменяется сопоставление.

Работает как чемпион. Спасибо Apache за этот замечательный инструмент.

person Simon    schedule 16.01.2009