Вопрос

Итак, у меня есть настройка 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top