Let's say your URL is http://example.com/thisisafile.html
All Apache normally has to do is separate take the URL path /thisisafile.html and come up with a file system system path such as /home/username/example.com/thisisafile.html then open that file and send out the contents.
However .htaccess files can be used to use a different method, in particular for the "search engine friendly URL" behavior.
Say your URL now is http://example.com/article/1
Yeah, so there is no directory named "article" and a file named "1". Apache has been told instead to run the program /home/username/example.com/index.php with parameters view=article and page=1 instead. It knows to do that if the url-path starts with /article/ instead of something else. WordPress itself uses this method.
There are other things such as hotlink prevention, form spam prevention etc that also change what Apache does.
So it would appear that at your site something is causing Apache to not be able to match a url-path directly to an image file, and whatever it is, it is most likely in the .htaccess file.
A simple test would be to copy down a image URL that doesn't work. Then rename the .htaccess file temporarily to something else. Try to bring up the image. If it comes up just fine, then its the .htaccess file. Also check to make sure you don't have multiple .htaccess files (not just in the document root)
Also, do the image files have permissions set to 644? If a file doesn't have public read permission, Apache can't read it, maybe WordPress is masking that error. Also check the error.log file too.
Customer since 2000 openvein.org