3

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.

2
  • Adding the php file in the folder of the request image seems a bit strange, you most probably want the php file in the root folder. Otherwise, it means that you have some.php on each images folder, or another rewrite rule to process that. Commented Oct 17, 2012 at 1:38
  • It's not strange, it's a feature. Commented Oct 17, 2012 at 10:40

3 Answers 3

4

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
Sign up to request clarification or add additional context in comments.

1 Comment

Although your answer works as well as any other answers here so far, you gave me the hint that I needed. Mod_Rewrite wasn't working at all, because I was working on a vhost that didn't had any <Directory> instructions, thus not allowing url override by default.
2

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

2 Comments

Can you be a little more specific. What actually happens.
Nothing happens. I access example.com/folder/img/test.jpg and it just displays the image as is, when it should redirect to php and dump the GET request on the screen.
1

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.