yoda
yoda

Reputation: 10981

Apache - rewrite images to php file with .htaccess

I'm looking for a way to rewrite all my image requests from one folder into some.php file, while preserving the original image url (or partial path).

So,

example.com/folder/img/test.jpg

would be rewrited as something like

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

(is this the best approach?)

I'm not familiarized enought witrh regular expressions, so I'll be very thankfull :)

note : I've tried some solutions before, none of them worked. ALso, I'm running Apache 2.0 under CentOS environment.

Upvotes: 3

Views: 8341

Answers (3)

PatomaS
PatomaS

Reputation: 1603

Considering what you mention in the comments and that the previous rules didn't work, I edited the message, this is what i have now.

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

If folder is al variable, you can change that for (\w*) and add the reference in the right side of the rule.

Hope this helps.

Bye

Upvotes: 1

anubhava
anubhava

Reputation: 784888

Enable mod_rewrite and .htaccess through httpd.conf and then put this code in your .htaccess under DOCUMENT_ROOT directory:

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

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

Make sure:

  • .htaccess is enabled
  • mod_rewrite is enabled
  • Your URL is http://example.com/folder/img/test.jpg

Upvotes: 4

William Greenly
William Greenly

Reputation: 3989

It sounds like you you want the filename of the image in the url to be included in the new php url, not the entire url. So something like:

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

Upvotes: 2

Related Questions