Виртуальные домены и субдомены, использующие mod_rewrite - PullRequest
0 голосов
/ 07 января 2012

Я хотел бы создать службу, в которой пользователь может получить субдомен или обычный домен в моей службе.

Идея состоит в том, что все субдомены, кроме www., должны перейти на /subdomains.php?user=[sub]&url=[requestet url]* 1005.*

И все домены, кроме 2 моих собственных доменов, должны перейти на /domain.php?url=$1

Мои 2 домена: domain1.com и domain2.se

Я пробовал следующий код:

<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine On

# Rewrite sub domains.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain2\.se$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain2\.se$ [NC]
RewriteRule ^(.*)$ /subdomain.php?user=%2&url=$1 [QSA,L]

#Rewrite 
RewriteCond %{HTTP_HOST} !^www\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain2\.se$ [NC]
RewriteRule (.*) http://www.domain1.com/domain.php?url=$1 [R=301,L]
</IfModule>

Но он не работает.

1 Ответ

0 голосов
/ 07 января 2012

Поддомены: как вы ожидаете, что URL будет и субдоменом domain1.com и domain2.se одновременно?

Попробуйте, например, это упрощение:

RewriteCond %{HTTP_HOST} !^www\.(domain1\.com|domain2\.se)$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.(domain1\.com|domain2\.se)$ [NC]
...