Если на самом деле будет только один (или только несколько) крошечных (-ых) параметров (-ов), которые (-ы) различаются в поддоменах, вам, вероятно, следует рассмотреть возможность обслуживания всех поддоменов из одного и того же корневого документа / веб-узла.Сделайте это с настройкой вашей конфигурации vhost.В Apache это будет выглядеть примерно так (предполагается, что NameVirtualHost *:80
):
<VirtualHost *:80>
ServerName mysite.com
ServerAlias *.mysite.com
DocumentRoot /var/www/websites/mysite
</VirtualHost>
Затем из своего кода вы можете определить, какие настройки использовать (или переопределить), используя поддомен, который может быть определен какИтак:
$domain = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
$subdomain = implode('.', explode('.', $domain, -2));
Затем используйте $subdomain
, чтобы определить, какие настройки использовать.
Я не собираюсь приводить пример кода, как вы можете определить, какие настройки использовать для данного субдоменапотому что ваш выбор реализации очень субъективен к вашим потребностям.
РЕДАКТИРОВАТЬ - в ответ на вопрос от OP в первом комментарии
Если вы абсолютно не можетепоместите ServerAlias *.mysite.com
в вашу конфигурацию vhost, тогда все равно может быть простой способ заставить все работать аналогичным образом: используйте символические ссылки для корня документа / корня.
Так что, если myname.mysite.com имеет документ /веб-корень /var/www/websites/myname.mysite.com и mysite.com имеет документ / веб-корень /var/www/websites/mysite.com
Затем создайте / var / www / sites/myname.mysite.com символическая ссылка на /var/www/websites/mysite.com на веб-сервере:
cd /var/www/websites/
ln -s mysite.com myname.mysite.com
Это должно привести к тому, что файлы, используемые / обслуживаемые Apache для myname.mysite.com, будут получены изто же расположение на сервере, что и для mysite.com.
EDIT - для cPanel
Хорошо, теперь я убежден, что cPanel хромает.
Если у вас уже включен mod_proxy, вы можете сделать это в каждом корне .htaccess
RewriteRule ^([^/]*)(/?)(.*) http://mysite.com/$1$2$3 [L,P]
Конечно, это даже не учитывает запросы, поступающие через https.Вы можете избежать использования mod_proxy, направляя все запросы к символической ссылке в корне web / document для myname.mysite.com, НО, что возвращает нас к вопросу создания символических ссылок.Возможно, было бы проще получить символические ссылки в корнях документа / веб-узла, чем создавать сами символические ссылки на корни документа / веб-сайта.
Надеюсь, это дало вам некоторые идеи.Похоже, вам нужно будет сделать что-то помимо того, что предоставляет cPanel, чтобы все работало так, как вы этого хотите.