user1078494
user1078494

Reputation: 509

htaccess redirect but exclude images

I'm trying to use htaccess redirect to a file, but can't get the image to display.

I want to redirect ANY request to mydomain.com or www.mydomain.com to www.mydomain.com/test.html

This is the content of my htaccess file:

# Turn rewriting on
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/test.html
RewriteCond %{REQUEST_URI} !=*\.png$ [NC]
RewriteRule .* /test.html

I have this line of code in my test.html file:

<img src="image.png" alt="My Image">

But the image doesn't display at all, I just get a broken image. I also tried using absolute path for image, same thing.

Upvotes: 5

Views: 18822

Answers (4)

Adrian Hall
Adrian Hall

Reputation: 21

Try -

RewriteCond %{REQUEST_URI} !\.(ico|gif|jp?g|png|swf|rm|mov|mp?g)$ [NC]

Upvotes: 0

Duke
Duke

Reputation: 36960

This will exclude various types of images

#if the request does not end with .gif,.png or jpg 
RewriteCond %{REQUEST_URI} !(\.gif|\.jpg|\.png)$ [NC]
RewriteRule ^index.html$ index.php [NC] 

Upvotes: 6

Jason McCreary
Jason McCreary

Reputation: 72961

Try:

RewriteCond %{REQUEST_URI} !\.png$ [NC]

Not familiar with !. prefix. Check the RewriteCond Docs

Upvotes: 3

Ulrich Palha
Ulrich Palha

Reputation: 9509

Try replacing your .htaccess file with the following

# Turn rewriting on
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

#if the request does not end with test.html or is not a .png
RewriteCond %{REQUEST_URI} !(test\.html|\.png)$ [NC]
# Rewrite it to test.html
RewriteRule .* /test.html  [L]

Upvotes: 16

Related Questions