Apache - переписать изображения в php файл с помощью.htaccess

Я ищу способ переписать все мои запросы изображений из одной папки в файл some.php, сохранив исходный URL-адрес изображения (или частичный путь).

Так,

example.com/folder/img/test.jpg

будет переписан как что-то вроде

example.com/folder/some.php?img=img/test.jpg

(это лучший подход?)

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

примечание: я пробовал некоторые решения раньше, ни одно из них не сработало. Также я использую Apache 2.0 в среде CentOS.

3 ответа

Решение

Включить mod_rewrite и.htaccess через httpd.conf а затем вставьте этот код в свой .htaccess под DOCUMENT_ROOT каталог:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(folder)/(img/[^.]+\.jpg)$ $1/some.php?img=$2 [L,QSA,NC]

Удостовериться:

  • .htaccess включен
  • mod_rewrite включен
  • Ваш URL http://example.com/folder/img/test.jpg

Похоже, вы хотите, чтобы имя файла изображения в URL-адресе было включено в новый URL-адрес php, а не во весь URL-адрес. Так что-то вроде:

RewriteRule ^folder/img/(.*[.]jpg)$ /folder/some.php?filename=$1

Учитывая то, что вы упоминаете в комментариях и что предыдущие правила не сработали, я отредактировал сообщение, теперь это то, что у меня есть.

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(.*)\.jpg [NC]
RewriteRule ^folder/img/([\w]*\.jpg)$ folder/some.php?img=img/$1[R=301,L]

Если папка является переменной, вы можете изменить это для (\w*) и добавить ссылку в правой части правила.

Надеюсь это поможет.

до свидания

Другие вопросы по тегам