The trouble with using the JavaScript location object is that because it uses a client-side command to perform the redirect, the page that does the redirecting stays in the users' browser cache and won't go away unless
(1) there is a META HTTP-EQUIV tag used to force it to expire, or
(2) the user deletes his cache.
Thus, even if you change the location-redirect code at the server side, the user will continue to see to the cached page and thus continue to be redirected to the old URL.