views:

785

answers:

3

I am new to this mod_rewrite. I have been successfully able to rewrite the URL something like this: "http://mydomain.com/products/12" to "http://mydomain.com/products.php?prodId=12"

But when I give http://mydomain.com/products/12 in the address bar... the css and js files are not loaded.

But when I access "http://mydomain.com/products.php?prodId=12" the js and css get loaded properly.Please let me know if I am missing out on something.

Please give the reason behind this.Should I modify the .htaccess file?What is the problem?

My .htaccess looks like this

Options +FollowSymlinks RewriteEngine on RewriteRule ^products/([0-9][0-9])/$ /products.php?prodId=$1 [L]

My css and js folders are also in the same folder

A: 

You must be using relative links to your script/css files, like this:

<script src="my.js"></script>

This works for your old URL, but on the new one it will look in the "products" directory, which of course doesn't exist. You could use absolute urls instead:

<script src="/my.js"></script>
Greg
+2  A: 

You need to know that relative URIs (thus absolute and relative URI paths too) are resolved from a base URI that is – if not explicitly declared – the URI of the current document.

So if you reference external resources from /products/12 with the relative URI foo/bar, it’s resolved to /products/foo/bar.

To fix this, use absolute URI paths (beginning with /) or absolute URIs (beginning with the protocol) or set explicitly a base URI other than the current (see BASE HTML element). But note that changing the base URI has some side effects as it affects every relative URI.

Gumbo
A: 

But using absolute URL's will increase the number of requests made from the root right?

If that’s a comment, make it a comment to the question or one of the answers.
Gumbo