I want to write a .htaccess file for redirecting my subdomains and URL's last variable to a new location. Here is what I want to do:
http(s)://abc.example.com/books
I want my internal URL to be like:
http://example.com/?name=abc&type=books
I have already gotten the subdomain redirect to work but I am not able to do subdomain with variable in last part of URL.
How can I accomplish this?
This should do what you want:
RewriteCond %{HTTP_HOST} ^(.+).example.com
RewriteRule ^(.*)% http://example.com/?name=%1&type=$1 [R,L]
The "%1" means use the first capture group from the RewriteCond above.
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com
RewriteRule ^([^/]*)$ http://example.com/?name=%1&type=$1 [R,L]
The "%1"
means use the first capture group from the RewriteCond, while $1
is the first capturing group in the rule itself.
In your example %1
will be "abc" and $1
will be "book"
[^/]*
means "match every character not being a slash, 0 or more times"