Im trying to change my Rewrite rules from;
RewriteRule ^courier.*$ COURIER\.php?subtype=courier [L]
to
somthing that will work with any of my URLs such as somthing like;
RewriteRule ^(.*).*$ mysite.com/$1.php?subtype=$1 [L]
Ouch, ouch. You cannot say (.*).* no way, no how. Since the asterisk means "none or more", the captured part (.*) will grab everything, leaving nothing for the leftover .* And since that part isn't being captured, it doesn't need to be there anyway.
Are COURIER, VALETING etc names of
pages? Are they all at the top level of the domain? If they are in directories, the rule gets trickier. In its simplest form, the pattern would be
RewriteRule ^([^.]+)\.html? $1\.php?subtype=$1 [L]
(or \.php or whatever extension you use)
but note that Regular Expressions can't change capitalization. Whatever is captured is what you've got. If they're all going to a php script, you can deal with the capitalization there.
If the pages are potentially inside of directories, you can't use the ^ anchor. But for a rewrite you don't need it. For a redirect you do, so you can capture any subdirectories and include them in the full url.
Note also that this rule will
replace any existing query string. If there is other stuff that you need to keep, include the flag [QSA] for Query String Append.
The harder part is setting conditions to make sure you're not rewriting requests that are
already in the form you want. If you start out with no query string it is very easy because you only have to say
RewriteCond %{QUERY_STRING} !.
meaning "nothing of any kind"
or possibly
RewriteCond %{QUERY_STRING} =""
(Apache says so, but I've never personally tried it).