Я делаю реализацию моего проекта в localhost Xampp монтаж
Часть моего проекта,
Когда пользователь регистрируется на моей странице, ему будет предложено указать желаемый поддомен, и с этого момента его URL будет:
chosensubdomain.mysite.com
Все работает отлично, за исключением поддоменов, я должен вручную добавить записи в файл хоста Windows следующим образом
127.0.0.1 chosensubdomain.mysite.com abc.mysite.com xyz.mysite.com
То, что я хочу, было, когда форма представляет хост-файл должен быть дополнен записью
Я не уверен, возможно ли сделать запись в файле Windows Host программно с использованием PHP.
Пожалуйста, помогите мне с этим товарищам …
Несмотря на то, что это очень возможно, лучше сэкономить время будет использовать выбранный язык программирования для динамического создания подпапок на сервере, а затем использовать .htaccess
файл для перезаписи http://foo.com/bar
в http://bar.foo.com
, это должен помочь вам, если вы используете живой сервер или используете Zpanel на локальном компьютере (для простоты расширенного контроля DNS), в противном случае вы можете вручную добавить поддомен «все» (*) в файл хоста.
*.foo.com IN A 127.0.0.1
Если вы все еще хотите сделать это по-другому, вам нужно использовать функции ввода-вывода PHP для динамического добавления текста в ваш файл хоста.
$sub_domain = " foo.bar.com";
$append = file_put_contents('C:\Windows\System32\drivers\etc\hosts', $sub_domain.PHP_EOL , FILE_APPEND | LOCK_EX);
Я на самом деле думаю этот лучше отвечает на ваш вопрос.
Хранение записи новых записей для хостов не очень хороший способ.
Вот моя идея: использовать Dnsmasq
на вашем местном окружении.
Например: настройка Dnsmasq на OSX
Правило для dnsmasq должно быть установлено для разрешения любого домена, заканчивающегося на mysite.com
в 127.0.0.1
Таким образом, все ваши субдомены, соответствующие вашей локальной среде, будут указывать на localhost, что решит вашу проблему.
В производственной среде вы можете установить подстановочный знак A или AAAA (возможно) для вашего домена.