Forum Moderators: phranque
# Internally rewrite specific Miva Merchant pages
RewriteRule ^order/specials$ http://www.example.com/mm5/merchant.mvc?Screen=SPECIALS [L]
# Internally rewrite extensionless URL requests to .htm file
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^.]+[^./]\ HTTP/
RewriteRule ^([^.]+[^./])$ /$1.htm [L]
I can't do that because I don't want to do an external redirect.
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^.]+[^./]\ HTTP/
RewriteRule ^([^.]+[^./])$ /$1.htm [L]
But you are doing an external redirect. The moment you include a protocol-plus-domain in the target, it becomes a redirect even if there's no [R] flag. To keep it as an internal rewrite, the target has to start in / alone, like your other posted rule.
If the target includes protocol and hostname you have a redirect.
If there is no [R] flag OR there is an [R] flag with no status code then you have a 302 redirect.
If you specify a status code then that is what will be returned.
# Internally rewrite specific Miva Merchant pages
RewriteRule ^order/specials$ /mm5/merchant.mvc?Screen=SPECIALS [L]
There are two other steps to complete the process.
One is to make sure that the links on the pages of the site point to the friendly URLs.
The other is to add a redirect so that anyone requesting a parameter-based URL found in an old bookmark or stale SERP is redirected to the new URL. This avoids a Duplicate Content issue.