Okay, it appears that you want to show BOTH versions and that’s just not possible. Pick one or the other to show your visitors and just do that.
Back to your question, though. Add the R=301 flag to the Last flag for your RewriteRule as that shows a permanent redirection AND will cause the new {REQUEST_URI} to be displayed.
Redirecting TO the “new format” is something that’s been asked here before so I’ll refer you to my tutorial article for the short answer (and code). You’ll still need to pick one or the other but you can get “loopy” without creating a continuous loop.
Because the redirections will be seen with the absolute redirection using http (or https, for that matter), you may as well change [L] to [R=301,L]. IMHO, redirections like this are normally INTERNAL so that the redirection is not visible to the visitor.
Okay, that’s clearly NOT what your mod_rewrite is doing!
Spec: Require cities, variable and number as requested from (www.)?domain.us; strip cities and redirect to variable as subdomain retaining number.html. Since you’ve used lowercase exclusively, so will I with my regex:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\\.)?parttimejobsin\\.us$ [NC]
RewriteRule ^cities/([a-z]+)/([0-9]+).html?$ http://$1.parttimejobsin.us/$2.html [R=301,L]
See the difference when you can specify (that’s how I start - and am able to see problems like repeating the {HTTP_HOST} with its www.subdomain when all you needed to see was that the subdomain is NOT present.
Examine the HTTP_HOST variable and capture the optional www. and ONE OR MORE SUBDOMAIN of parttimejobsin.us (no case - good!). Then match cities/ followed by one or more of any character EXCEPT /, \ or . (the dot character does NOT get escaped in a character range definition) followed by / then the same range of characters followed by ANY CHARACTER (you escaped when you shouldn’t but not when you should) and html. Whew! Okay, if the matches were made, redirect to http://subdomain.www.subdomain.parttimejobsin.us/$1 (first set of characters, not the filename for the html file. Do you see where you went wrong (other than escaping the wrong dot characters)? DOMAIN then … well, did you want nursing or 10000?
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\\.)?([^\\.]+)\\.example\\.com$ [NC]
RewriteRule ^$ /index.php?var=%2 [L]
[B]RewriteCond %{HTTP_HOST} ^(www\\.)?([^\\.]+)\\.example\\.com$ [NC]
RewriteRule ^(.*)$ /index.php?var=%2&id=$1 [L][/B]
# BECAUSE (.*) will match index.php,
# change (.*) to ([a-zA-Z]+) or
# ANY character range definition
# without a dot character else
# add another RewriteCond to exclude
# index.php from the {REQUEST_URI}