Я пытаюсь использовать комбинацию .htaccess и PHP для создания субдоменов «на лету» в моей учетной записи хостинга GoDaddy. У меня возникла проблема с попыткой изменить зону с помощью звездочки подстановочных знаков. Я совсем не знаком с тем, как это работает, и только нашел информацию о зоне в домене, широко изучив менеджер домена. Я не уверен, что знаю, что делаю. Я немного больше знаком с .htaccess, хотя мне все еще сложно написать RegEx.
Я изучил еще один учебник, который будет использовать .htaccess для перенаправления поддомена в папку в корне моего домена (например, sub.domain.com на domain.com/sub). Вот мой код:
#Grab the subdomain from the domain RewriteCond %{HTTP_HOST} ^([^.]+).MY-DOMAIN.com$ #Make sure the subdomain is not www or example RewriteCond %{1} !^(www)$ #Check if the directory actually exists before we go there RewriteCond /home/content/X/Y/Z/XYZ-MY-GODADDY-ACCT/html/%1 -d #This stops it from looping RewriteCond %{REQUEST_FILENAME} !^/home/content/X/Y/Z/XYZ-MY-GODADDY-ACCT/html/ #Finally, this is the actual rewrite RewriteRule (.*) /home/content/X/Y/Z/XYZ-MY-GODADDY-ACCT/html/%1 [L]
На данный момент я сделал следующее:
Какие-либо предложения?
DNS – только 1 часть конфигурации. Вам необходимо иметь ServerAlias для * .mydomain.com в конфигурации для виртуального хоста в Apache, иначе Apache не будет знать, куда направлять запросы для * .mydomain.com – что означает, что .htaccess никогда не имеет возможности работа на всех.
Если GoDaddy предоставляет возможность вручную редактировать директивы виртуальных хостов или, по крайней мере, возможность добавлять псевдонимы серверов через свой графический интерфейс, то это достаточно просто. Если вы не можете найти его, вы должны связаться с GoDaddy для получения информации.
Мне посоветовали отослать мой ответ отсюда к этому вопросу:
Хотя это не то же самое, что возможность создания новой записи vhost для динамического добавления каждого поддомена, вы должны установить ее с помощью записи подстановочного DNS и добавления выделенного IP-адреса в свою учетную запись хостинга. Вы можете добавить выделенный IP-адрес своей учетной записи хостинга, используя этот метод:
ПРИМЕЧАНИЕ. Выделенные IP-адреса могут занять 24 часа, чтобы стать активными на вашей учетной записи хостинга.
Вы можете настроить * .yourdomain.com для использования выделенного IP-адреса вашей учетной записи общего хостинга в нашем диспетчере DNS.
Я только что получил телефон с технической поддержкой GoDaddy и получил блестящее решение, которое не требует использования mod_rewrite или обновления на выделенный сервер.
В своем аккаунте на странице https://gateway.godaddy.com выберите «Хостинг» в раскрывающемся списке, а затем на открывшейся странице выберите «Настройки». В открывшемся модальном окне нажмите кнопку «Изменить домен» и введите в фиктивный домен (обратите внимание, что фиктивный домен не нужно регистрировать или вводить в DNS. Затем он изменит ваш домен по умолчанию на фиктивный домен, который будет находиться в public_html.
После этого перейдите в cPanel и выберите Addon Domains из зеленой строки меню вверху. Введите новый домен и введите имя зарегистрированного домена, затем укажите корень документа (DocRoot). Путь может быть местоположением каталога полностью вне папки public_html, чтобы вы могли создать дружественный путь Laravel, такой как webroot / mydomain.com / public, и установить Laravel в webroot / mydomain.com.
Аналогичным образом вы можете указать похожие пути для поддоменов.
Надеюсь, это поможет всем, кто смотрит на это.