If both URL requests return HTTP "200 OK" status then both can be indexed. The Live HTTP Headers extension for Firefox is very useful in checking out the HTTP headers returned by the server.
What a rewrite does, is map an incoming URL request to an internal filepath. So the most crucial part of that is that the links on the page should specify the new URL in the href part of the link. It is those links that *define* the URLs.
If the old link still returns "200 OK" it will continue to be indexed. To prevent both URLs being indexed, the old one with parameters should return a 301 redirect to the new URL. This will signal to searchengines that they need to update their index; but the redirect preserves any traffic arriving via the old URL while that is being actioned.
It certainly does. If both return "200 OK" you'll have problems. If one redirects to the other, Google et. al will eventually sort out what is going on. The redirect is an essential part of the complete system.
To recap. If you have a script inside the server located at the internal filepath /index.php, that script can usually be accessed using the URL example.com/index.php.
If a particular page is returned for the query ?cPath=99 appended to that URL, and it returns HTTP "200 OK" status, then the URL example.com/index.php?cPath=99 can be indexed.
If you install a rewrite such that URL requests for www.mysite.com/my_category are rewritten to fetch content from the server internal filepath at /index.php?cPath=99 and it returns HTTP "200 OK" status, then it too can be indexed.
Pages of the site MUST link to the URL format that you DO want to be indexed and which return "200 OK" status. The URL format that you do not want to be indexed must return either "404 Not Found" or a "301 redirect" to the other URL. The 301 redirect is preferred. It preserves traffic following old, out of date links while signalling to update the URLs listed in the searchengine database.
Bookmarks