Как решить проблему с динамическими поддоменами?

Ситуация такая, на сайте есть куча динамических поддоменов, типа username.site.com, все они обрабатываются одним приложением на yii, с помощью mod_rewrite:
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.site\.com$ [NC]
RewriteRule (.*) index.php?un=%2 [NC,QSA]


Все бы ничего, но находясь на поддомене, при обращении к любому другому скрипту, отличному от index.php, обращения не происходит.
Например: если находясь на alien.site.com нажать на ссылку alien.site.com/go.php - будет обращение к index.php, так же и с любыми другими скриптами. Как это исправить?
  • Вопрос задан
  • 3253 просмотра
Решения вопроса 1
@MaxHero
Пару лет назад на русскоязычном форуме yii задавался подобный вопрос. Решение подобной проблемы я описал в этом топике.

Вкратце

настройки виртуалхоста апача:
<VirtualHost *:80>
    ServerAdmin maxhero90@gmail.com
    DocumentRoot "D:/Projects/WWW/urlShortener"
    ServerName urlshortener.localdomain
    ServerAlias *.urlshortener.localdomain
    ErrorLog "logs/urlShortener.localdomain-error.log"
    CustomLog "logs/urlShortener.localdomain-access.log" common

    <Directory />
        DirectoryIndex index.php
    </Directory>
</VirtualHost>


mod_rewrite:
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php


a также правил CUrlManager:
array(
    'http://<user:\w+>.example.com/<lang:\w+>/profile' => 'user/profile',
)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lnked
Так работают у меня поддомены
RewriteCond %{REQUEST_URI} !^/
RewriteRule ^(www\.)?([a-zA-Z0-9_/\-]*)\.site\.com(.*) /$2/%{REQUEST_URI} [L]
RewriteRule ^([a-zA-Z0-9_/\-]*)$ index.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы