homepage Welcome to WebmasterWorld Guest from 54.205.188.59
register, free tools, login, search, subscribe, help, library, announcements, recent posts, open posts,
Subscribe to WebmasterWorld
Home / Forums Index / Code, Content, and Presentation / HTML
Forum Library, Charter, Moderators: incrediBILL

HTML Forum

    
images not showing up after I updated my htaccess
Mister206




msg:4424550
 4:47 pm on Mar 3, 2012 (gmt 0)

Ive just finalized my htaccess to force the trailing slash on my urls. However now I have another problem. The images are not showing up unless I add the absolute path to the image. Here's how it looks

/products
/products - index.html (images showing on this page without absolute url)
/products - example.html (images not showing unless I write the absolute url)

Any ideas?

ErrorDocument 404 /404page.html
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.mysite.com$
RewriteRule ^(.*)$ [mysite.com...] [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ [mysite.com...] [R=301,L]

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)/$ $1.html [L]

Let me know if you need more info.

 

Mister206




msg:4424552
 4:52 pm on Mar 3, 2012 (gmt 0)

I just found this thread. Does this shed any light on what Im doing wrong?

[webmasterworld.com...]

g1smd




msg:4424554
 4:53 pm on Mar 3, 2012 (gmt 0)

If the link to your image is
href="images/image.png" this is what happens:

From page at:
example.com/thispage the browser will evaluate the image link as pointing to: example.com/images/image.png

From page at:
example.com/thispage/ the browser will evaluate the image link as pointing to: example.com/thispage/images/image.png

You should change your image link from
href="images/image.png" to href="/images/image.png" beginning with a leading slash so that it counts from the root.



There are a large number of errors in your example htaccess code.

RewriteEngine on should appear only once.

Add a blank line after every RewriteRule so you can clearly see which bits of code belong together.

The index redirect must be listed before the domain redirect otherwise some requests will create an unwanted multiple step redirection chain.

Literal periods must be escaped.

The domain redirect doesn't cater for all requests:
!^www.mysite.com$ should be !^(www\.mysite\.com)?$ so that pure HTTP/1.0 requests do not create a loop.

Your index redirect works only in the root, not in folders. Do not use (.*) as a pattern to fix that.

Your "add a slash" redirect should be before the domain redirect otherwise it will invoke an unwanted multiple step redirection chain for some requests. However, why are you adding a slash? URL ending in slash is for a folder. URLs for pages do not end with a slash but may have an optional extension (I prefer extensioness URLs for pages). Files, such as images and stylesheets, always have an extension.

The "-f" test is very slow and inefficient. There are much better ways to invoke a rewrite, especially where URLs for pages are extensionless. If you really do have to use the "-f" test, make sure the Rule pattern or the pattern in a preceding RewriteCond tests the extension and only allows the "-f" test to proceeed if there is actually a chance that this request will be rewritten, i.e. exclude image and stylesheet extensions.

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / HTML
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved