WordPress mu subdomain vhost
-
22-10-2019 - |
Вопрос
Итак, у меня есть настройка MU с субдоменом, и мне нужна поддодия, чтобы указывать на другой путь. Моя проблема заключается в том, что я добавляю файл vhost, который загружает перед WordPress, и загружает его путь для всего, что не имеет назначенного пути в моей конфигурации Vhosts. Но если я загружаю после установки домена WordPress, то он сделает TORS создать сайт для введенного поддомена.
Что мне нужно, так это:
sub2.mydomain.com - указывает на/path/to/sub/directory
*.mydomain.com - указывает на/path/to/wordpress/install
ОБНОВИТЬ:
Я использую плагин с картированием домена, который, я думаю, вызывает мою проблему. Все суб -сайты загружаются нормально, но когда я загружаю картинный домен на суб -сайт, он не работает.
Я не могу добавлять свой карманный домен каждый раз в свою конфигурацию Vhost, так как планирую позволить другим карту доменов
Решение 3
Поскольку мой плагин сопоставления доменов не выполняет CNAME (отображение домена WPMudev) я не мог использовать предложение CNAME. Что касается IP -адреса, это не проверено, так как я не хочу добавлять больше в свой счет хостинга в это время, может быть, в этой функции. Я сделаю его шанс. Заказывая Vhosts и назначение псевдоним, но, как я уже говорил в предыдущем комментарии, я планирую позволить другим пользователям отобразить доменное имя, и это означает, что мне придется добавлять его вручную каждый раз, когда он был зарегистрирован.
Мое решение таково:
Я создал сайт WP с поддоменом по моему выбору, а затем создал ссылку SYM в корневой папке WP (я знаю, что я могу получить доступ с любого сайта, но не многие люди не будут такими), поэтому, когда я набираю субдомен1.mydomain .com/analytics. Он загрузит аналитику, то же самое касается моего скрипта отслеживания проблем. Создавая сайт, я могу создать страницу, которая показывает список сервисов, к которым можно получить доступ.
Спасибо, Джон П Блох, за вашу помощь, я знаю, что это не была проблемой WordPress, но, поскольку мой плагин с картированием домена также сделал его достаточно, спасибо, Эманн, это сработало бы, но, как я уже сказал, мне нужно было бы создать S -Алис каждый раз.
Другие советы
По сути, оказывается, вам нужно два выделенных IP -адреса или третий Vhost.
Айпи адрес
Вы можете использовать два IP -адреса и сделать что -то подобное в своей конфигурации Apache:
#IP address for WP
NameVirtualHost 12.34.56.78:80
#For everything else
NameVirtualHost *:80
Затем убедитесь, что VirtualHost
для WordPress объявлено так:
<VirtualHost 12.34.56.78:80>
и все остальное VirtualHost
Блоки объявлены перед WordPress использовать другой:
<VirtualHost *:80>
Это должно работать. Я вообще не проверил это, так что это может не сработать. Кроме того, я не уверен использовать звездочку во втором NameVirtualHost
Линия будет работать; Снова: непроверенный.
Cname
Предполагая, что ваш плагин сопоставления доменов позволяет использовать это, используйте метод «Cname» маршрутизации сопоставленных доменов вместо метода «IP». Используйте что -то вроде «map.domain.com» и нанесите на карту домены точку на это (это не позволит им использовать корень своего домена, но они должны быть в состоянии перенаправить example.com на www.example.com)
Добавьте еще одну запись VirtualHost для 'map.domain.com' в качестве первой записи Vhost, отражая основную запись Vhost для домена, в частности: корень документа.
Опять же, это также не проверено.
Конфигурация субдомена (старый ответ)
В качестве примера я использую виртуальный файл виртуального хоста моего сайта. Это все в одном файле:
# Virtual host for the subdomain first
<VirtualHost *:80>
ServerAdmin admin@test.jpb
ServerName drupal.johnpbloch.com
# Note that the document root and all other paths are different from the domain's primary virtual host below.
DocumentRoot /path/to/subdomain/directory/htdocs/
ErrorLog /path/to/subdomain/directory/logs/error.log
CustomLog /path/to/subdomain/directory/logs/access.log combined
<Directory /path/to/subdomain/directory/htdocs/>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# Virtual host for the main site next
<VirtualHost *:80>
ServerAdmin admin@test.jpb
ServerName johnpbloch.com
ServerAlias www.johnpbloch.com
ServerAlias *.johnpbloch.com
DocumentRoot /path/to/main/site/directory/htdocs/
ErrorLog /path/to/main/site/directory/logs/error.log
CustomLog /path/to/main/site/directory/logs/access.log combined
<Directory /path/to/main/site/directory/htdocs/>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Это не должно быть в одном файле; Важная часть заключается в том, что Apache сначала загружает более конкретный виртуальный хост. Это означает, что любые виртуальные хозяева без подстановочных знаков ни в одном ServerAlias
Значения должны быть загружены перед любыми виртуальными хостами с этими значениями подстановочных знаков.
Нет никакого значения, нет настройки, ничего, что вы могли бы сделать, в WordPress или вокруг него, что могло бы решить вашу проблему. К тому времени, когда запрос достиг WordPress, уже слишком поздно. Апач уже загрузил виртуальные хосты, уже разрешил хост и всегда будет направлять трафик так, как оно. Если трафик попадает в WordPress, когда это не должно быть, это проблема конфигурации сервера. Не WordPress.
Я также столкнулся с этим на своем сервере, и я могу гарантировать вам, что ответ Джона верен. Чтобы доказать это, вот vhost
Раздел из моего собственного файла конфигурации Apache:
<VirtualHost *:80>
ServerName prosepainting.com
ServerAlias www.prosepainting.com *.prosepainting.com
DocumentRoot /var/www/html/eamann
</VirtualHost>
<VirtualHost *:80>
ServerName mindsharestrategy.com
ServerAlias www.mindsharestrategy.com *.mindsharestrategy.com
DocumentRoot /var/www/html/eamann
</VirtualHost>
<VirtualHost *:80>
ServerName groundedchristianity.com
ServerAlias www.groundedchristianity.com *.groundedchristianity.com
DocumentRoot /var/www/html/eamann
</VirtualHost>
<VirtualHost *:80>
ServerName prose.eamann.com
DocumentRoot /var/www/html/eamann
</VirtualHost>
<VirtualHost *:80>
ServerName business.eamann.com
DocumentRoot /var/www/html/eamann
</VirtualHost>
<VirtualHost *:80>
ServerName git.eamann.com
DocumentRoot /home/git/repositories
</VirtualHost>
<VirtualHost *:80>
ServerName eamann.com
ServerAlias www.eamann.com *.eamann.com
DocumentRoot /var/www/html/eamann
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
У меня это настроено таким образом, потому что я выборочно включаю и выключен каждый сопоставленный домен для тестирования. Но все сайты в моей установке WordPress являются субдоменом eamann.com
и получить на карту в нужное место *.eamann.com
декларация. Чтобы настроить сопоставленные домены, мне также нужно было добавить их.
Чтобы упростить ситуацию, эта конфигурация сделает Точно так же:
<VirtualHost *:80>
ServerName git.eamann.com
DocumentRoot /home/git/repositories
</VirtualHost>
<VirtualHost *:80>
ServerName eamann.com
ServerAlias www.prosepainting.com *.prosepainting.com www.mindsharestrategy.com *.mindsharestrategy.com www.groundedchristianity.com *.groundedchristianity.com www.eamann.com *.eamann.com
DocumentRoot /var/www/html/eamann
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
Мой git.eamann.com
Домен направлен на одно местоположение (моя репозитория GIT), но WordPress по -прежнему увидит все другие субдомены, и мои сопоставленные домены также будут указывать на WordPress.