В вашем коде shots
это словарь списка словарей. Вам необходимо обновить каждый «подсловарь выстрелов».
Самый простой способ сделать это - перебрать кадры, а затем установить клавишу «лига» в кадре:
league = 'premier_league'
for team_shots in shots.values():
for shot in team_shots:
shot['league'] = league
ServerAlias
ДОКУМЕНТЫВ Ваших настройках DNS необходимо создать подстановочную запись домена такой как *.example.org
. Подстановочная запись похожа на это:
*.example.org. 3600 A 127.0.0.1
Затем в конфигурации Apache необходимо настроить vhost контейнер, который указывает подстановочный знак в ServerAlias
Директива ДОКУМЕНТОВ. Пример vhost контейнер:
<VirtualHost *:80>
ServerName server.example.org
ServerAlias *.example.org
UseCanonicalName Off
</VirtualHost>
Затем в Ваших Сценариях PHP можно узнать домен путем заглядывания $_SERVER
супер глобальная переменная. Вот пример захвата субдомена в PHP:
preg_match('/([^.]+)\.example\.org/', $_SERVER['SERVER_NAME'], $matches);
if(isset($matches[1])) {
$subdomain = $matches[1];
}
Я привык regex здесь для позволить, чтобы люди поразили Ваш сайт с помощью www.subdomain.example.org или subdomain.example.org.
Если Вы никогда не ожидаете иметь необходимость иметь дело с www. (или другие субдомены), затем Вы могли просто использовать подстроку как так:
$subdomain = substr(
$_SERVER['SERVER_NAME'], 0,
strpos($_SERVER['SERVER_NAME'], '.')
);
Массовый виртуальный хостинг является немного отличающейся схемой к вышеупомянутому, в котором Вы обычно использовали бы его для хостинга многих отличных веб-сайтов вместо того, чтобы пытаться использовать его, приводят в действие приложение, как вопрос предполагает.
Я зарегистрировал базирующуюся массовую виртуальную среду хостинга своего mod_rewrite прежде в сообщении на моем блоге, который Вы могли посмотреть на то, если это - маршрут, Вы хотите взять. Существует также, конечно, соответствующая страница руководства Apache.
Apache также имеет внутренний способ иметь дело с массовым виртуальным хостингом, который немного менее гибок, чем mod_rewrite метод, который я использовал. Это все описано на Apache Динамично Настроенная Массовая Виртуальная страница руководства Хостинга.
Вы могли позволить каждый субдомен во-первых и затем проверить, допустим ли субдомен. Например:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]+\.example\.com$
RewriteRule !^index\.php$ index.php [L]
В index.php
Вы можете, чем извлечение использование субдомена:
if (preg_match('/^([^.]+)\.example\.com$/', $_SERVER['HTTP_HOST'], $match)) {
var_dump($match[1]);
}
Но все это требует, чтобы Ваш веб-сервер принял каждое имя субдомена.
В дополнение к установке подстановочного знака DNS Вы могли бы хотеть смотреть на Динамический Массовый Виртуальный Хостинг для Apache, который является, как я решил это в прошлом
Самый легкий путь состоит в том, чтобы перенаправить все субдомены (с подстановочным знаком *) для указания на/wwwroot. Тогда помещенный .htaccess к этой папке со следующим кодом:
RewriteCond %{ENV:REDIRECT_SUBDOMAIN} =""
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.domain\.com\.?(:80)?$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1 -d
RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L]
RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L]
Это выполнит ту каждую подпапку/wwwroot папки в приемлемом через субдомен (foldername.domain.com).
Найденный этим несколько лет назад на http://www.webmasterworld.com/apache/3163397.htm
Это не имеет отношения к .htaccess. Необходимо будет настроить записи DNS и виртуальный хостинг для субдоменов.
Mod_vhost_alias - это правильный модуль для этого.
В одной строке вы можете указать Apache, что нужно искать в нужном месте, с хэшированием каталогов и т. д. Например, строка:
VirtualDocumentRoot /http/users/%3.1/%3.2/%3
сообщит Apache, что для корневого документа нужно указать / http / users / s / u / subdomain при запросе для subdomain.yourdomain.com
Я думаю, что подстановочный DNS с Динамическим Массовым Виртуальным Хостингом Apache является разумным решением также. Хотя, я никогда не пробовал его.
, Если у Вас есть потребность масштабировать горизонтально к нескольким серверам или другим решениям просто, не работают на Вас, я рекомендую использовать базу данных управляемый сервер DNS. Я успешно использовал MyDNS в прошлом. Так как это использует MySQL (или PostgreSQL), можно обновить DNS на лету с PHP или примерно чем-либо еще. Код не похож на него, был обновлен в некоторое время, но это - DNS и поэтому не точно ультрасовременное.