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*) и добавить ссылку в правой части правила.
Надеюсь это поможет.
до свидания