Правило 1:
RewriteCond %{HTTP_HOST} !^www\.(domain1|domain2|domain3|domain4)\.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
или
RewriteCond %{HTTP_HOST} !^www\.domain1\.com [NC]
RewriteCond %{HTTP_HOST} !^www\.domain2\.com [NC]
RewriteCond %{HTTP_HOST} !^www\.domain3\.com [NC]
RewriteCond %{HTTP_HOST} !^www\.domain4\.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
Правило 2
http://www.mydomain.com/username
до
http://www.mydomain.com/file4.php?name=username
RewriteRule ^username$ /file4.php?name=username [QSA,NC,L]
и если вы хотите сделать его общим (с буквенно-цифровыми символами):
RewriteRule ^([a-z0-9]+)$ /file4.php?name=$1 [QSA,NC,L]
Правило 3
Соберите все вместе:
RewriteCond %{HTTP_HOST} !^www\.(domain1|domain2|domain3|domain4)\.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
RewriteRule ^([a-z0-9]+)$ /file4.php?name=$1 [QSA,NC,L]
Надеюсь, это поможет.
Два совета:
Пожалуйста, попробуйте использовать директиву RewriteLog
: она поможет вам отследить такие проблемы:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
Мой любимый инструмент для проверки регулярных выражений:
http://www.quanetic.com/Regex (не забудьте выбрать ereg (POSIX) вместо preg (PCRE)!)