Redirect with HTTP_HOST redirects to sub subdomain
To redirect using the sub-domain as a parameter:
# HTTP 301 Redirect test.*.net -> www.*.net
RewriteCond %{HTTP_HOST} ^test.([^.]+).net$ [NC]
RewriteRule (.*) http://www.%1.net/$1 [R=301,L)
# HTTP 301 Redirect test.*.com -> www.*.com
RewriteCond %{HTTP_HOST} ^test.([^.]+).com$ [NC]
RewriteRule (.*) http://www.%1.com/$1 [R=301,L)
If you also want to redirect when there's no subdomain (e.g. http://example.com
) to the main website using the www.
subdomain (http://www.example.com
):
# HTTP 301 Redirect *.net -> www.*.net
RewriteCond %{HTTP_HOST} ^([^.]+).net$ [NC]
RewriteRule (.*) http://www.%1.net/$1 [R=301,L)
# HTTP 301 Redirect *.net -> www.*.net
RewriteCond %{HTTP_HOST} ^([^.]+).com$ [NC]
RewriteRule (.*) http://www.%1.com/$1 [R=301,L)
If you're trying to achieve a lot with your .htaccess
files you may find it helps to test your conditions and how they affect URL rewriting on the htaccess Made-With-Love website.
In case this is where you struggled, it is always worth remembering that in .htaccess
, parameters prefixed with percent symbols (e.g. %1
) reference values from the last matched RewriteCond
expression, normally values that have been marked as being of interest by being surrounded in brackets ()
, and parameters prefixed with dollar symbols (e.g. $1
) reference values in the RewriteRule
expression, normally values that are automatically assigned by Apache and relating to the URL.
Related videos on Youtube
Tschallacka
Updated on September 18, 2022Comments
-
Tschallacka over 1 year
The settings
I have the following .htaccess rule
RewriteCond %{HTTP_HOST} !^www\. RewriteCond %{HTTP_HOST} !^de\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
This works great to redirect any subdomain that is not valid (
www
orde
) to thewww
subdomain.I have seen solution, but they only depend on single domain sites.
I have multiple domains:
http://www.example.com http://www.example.net http://de.example.com
which all serve their own brand of site.
Now I have the .htaccess rule that is mentioned above and it works beautifully if someone types in
http://example.com
it redirects tohttp://www.example.com
.The problem
If someone types in
http://test.example.com
, it redirects tohttp://www.test.example.com
and if someone types inhttp://test.example.net
, it redirects tohttp://www.test.example.net
.The question
How can I make it so that it redirects
http://test.example.com
tohttp://www.example.com
? Andhttp://test.example.net
tohttp://www.example.net
.I need an domain insensitve solution because more domains will be added in the future.