Ваше Правило1 не имеет явного субдомена
Если человек вводит что-либо кроме mydomain.com, например, mydomain2.com, он должен перенаправить на mydomain.com
и т. д. Правило2 противоречит Правило1
Если человек вводит ЛЮБОЙ домен БЕЗ субдомена, оннеобходимо перенаправить на www.mydomain.com
т.е. mydomain2.com
по Правило1 должно перейти на mydomain.com
, но на Правило2 , поскольку оно не имеетсубдомен, он будет идти к www.mydomain.com
Я предполагаю, что в правиле 1 вы имели в виду anysubdomain.non-mydomain.com
должно перейти к www.mydomain.com
.Если нет, уточните, поскольку приведенные ниже правила основаны на этом предположении.
Попробуйте добавить следующее в ваш .htaccess в корневом каталоге вашего сайта
RewriteEngine On
RewriteBase /
#redirect any domain without subdomain (including mydomain), to www.mydomain
RewriteCond %{HTTP_HOST} !^[^\.]+\.[^\.]\..+$ [NC]
#assume you do not want to carry over querystring or path just go to the root
RewriteRule . http://www.mydomain.com/? [R=301,L]
#if it has a subdomain
RewriteCond %{HTTP_HOST} !^([^\.]+)\.([^\.])\..+$ [NC]
#that is not on mydomain
RewriteCond %2 !^mydomain$ [NC]
#and it is on the list of subdomains to redirect
RewriteCond %1 ^(svn|otherIncludedSubdomains)$ [NC]
#also assume no querystrings carried over here. If needed, remove the last?
RewriteRule . http://(%1).mydomain.com/? [R=301,L]