htaccess: конкретные запросы каталогов для пересылки в файл PHP - PullRequest
1 голос
/ 08 июня 2011

Итак, я пишу генератор миниатюр на лету для CMS и пытаюсь найти лучший способ обработки запросов.В частности, мне нужно придумать код apache для файла htaccess, который возьмет все запросы в папку миниатюр и вместо этого отправит их в файл thumbnail.php.

В идеале это будет только перенаправить вас в thumbnail.php, если миниатюра не существует, хотя проверка существования файла в apache мне не подходит.

URL запроса будет выглядеть так:

http://unknown_domain.com/unknown_folder/media/thumbnails/image-name.jpg?w=200&h=100&c=true

И изображения будут храниться в миниатюрах примерно так (или могут иметь тот же URL, что и ниже, если это имеет больше смысла):

http://unknown_domain.com/unknown_folder/media/thumbnails/image-name-200-100-true.jpg

ВотКак только я дошел до этого места, я полагаю, что поместил этот htaccess в папку с миниатюрами:

RewriteEngine on
#RewriteBase /unknown_folder/media/thumbnails/ # optional, depends on your setup

#Check for file existence here and forward if exists
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z-])-([0-9]+)-([0-9]+)-true.jpg$ thumbnail.php?w=$2&h=$2&c=true [LQSE]

Спасибо за любую помощь, предоставленную заранее!

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

Полагаю, вы ищете регулярное выражение:

RewriteEngine on
RewriteBase /unknown_folder/media/thumbnails/ # optional, depends on your setup

#Check for file existence here and forward if exists
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z-]+)-([0-9]+)-([0-9]+)-true\.jpg$ thumbnail.php?w=$2&h=$3&c=true [L,QSA]

Я не проверял, но в идеале просьба к

/unknown_folder/media/thumbnails/bla-you-name-of-whatever-200-100-true.jpg

должен вызвать скрипт thumbnail.php с его параметрами.

Отредактировано: Исправлены некоторые опечатки и ошибки.

0 голосов
/ 08 июня 2011

Не уверен, что вопрос здесь, но есть еще несколько фильтров, которые вы должны использовать, чтобы проверить существование файла ...

RewriteEngine on

#Check for file existence here and forward if exists
RewriteCond ^/(regex_here)/$ !-f
RewriteCond ^/(regex_here)/$ !-d
RewriteCond ^/(regex_here)/$ !-s
RewriteCond ^/(regex_here)/$ !-l

RewriteRule ^/(regex_here)/$ /thumbnail.php?w=$1&h=$2&c=$3
...