Images in sub-pages fail to load

Your problem has nothing to do with htaccess. It’s that you’re using relative paths where you should be using absolute paths. (Here’s an explanation of the difference)

Probably the best way to reference any assets in your theme (assuming your theme has an “images” subdirectory) is to do something like:

<?php echo get_bloginfo('template_url') ?>/images/your_image.jpg

The first part echoes the whole url, right up to your theme root. So you always get an absolute URL, and you don’t have to hardcode the “/wp-content/themes/whatever”. Some WP installs don’t use “wp-content” as the name of the content directory, so this practice will make your themes more flexible and portable.

Update in response to comment:

This problem popped up because you enabled pretty permalinks, not because you changed your htaccess file. Granted, you did have to edit your htaccess enable pretty permalinks, but trust that this htaccess change was only incidental to the bigger issue.

Before you enabled pretty permalinks, all your page URIs were relative to the domain root. Meaning all your pages were “yourdomain.com/?p=something”. In this situation, your relative image paths worked, because they were always relative to the root.

After you enabled pretty permalinks, everything was relative to whatever path you were currently on. So if you weren’t on the homepage, any relative URL would be broken.

Take, just as an illustration, the relative url to an example image: “images/my_image.jpg”. On the homepage (“www.yourdomain.com/”), your browser will look for this image at “www.yourdomain.com/images/my_image.jpg”. But what happens if you’re on an interior page like “www.yourdomain.com/about”? Your browser will look for this image at its relative path, which is “www.yourdomain.com/about/images/my_image.jpg”. Obviously, this isn’t the right path, and the image (rightly) failed to load.