Apache не работает с несколькими сайтами в папке www

Я настроил Apache на моем домашнем веб-сервере; до сих пор у меня был только один веб-сайт, и он работал безупречно: я просто набрал свое имя хоста в браузере, и мой локальный веб-сайт появился бы.

Теперь мне нужно запустить несколько сайтов, поэтому я создал несколько подкаталогов в /var/www папка. Я хотел бы продолжить доступ к ним, набрав мое имя хоста, а затем / а затем имя подпапки. Я попытался настроить различные виртуальные хосты, добавив эти строки кода для каждого виртуального хоста:

ServerName hostname/site1
DocumentRoot /var/www/site1

но всякий раз, когда я печатаю hostname/site1 Я получаю страницу с ошибкой Apache, а не домашнюю страницу site1,

Есть ли какая-то другая строка конфигурации, которую я пропустил?

Обновить

Я удалил новые строки конфигурации и перевел файлы конфигурации в их состояние по умолчанию, так как это должно работать автоматически без какой-либо конкретной конфигурации. Я все еще не могу получить доступ к подпапкам, набрав hostname/site1 хоть.

2 ответа

Решение

Директива ServerName предназначена только для указания имени хоста и порта. Косая черта в подкаталог не является частью имени хоста.

В вашем примере я предполагаю, что у вас может быть что-то в /var/www/site2 так же как /var/www/site1, Для этой реализации вы хотели бы иметь:

ServerName hostname
DocumentRoot /var/www

Тогда вы могли бы получить доступ http://hostname/site1 а также http://hostname/site2

Чтобы получить субдомены, вы, вероятно, захотите взглянуть на виртуальные хосты на основе имен. Как правило, это включает в себя такие вещи, как subdomain.hostname, то есть test.example.org, который может указывать на / var / wwwtest и prod.example.org, который может находиться в / var / wwwprod. Как правило, вы должны убедиться, что субдомены находятся в разных путях, чтобы вы не могли попасть на один сайт с другого.

Этот предыдущий вопрос имеет пример реализации: настроить Apache для обслуживания нескольких поддоменов через HTTP + HTTPS

Виртуальные хосты полезны только при настройке нескольких доменных имен (или поддоменов). Здесь вы хотите получить доступ к своим сайтам по тому же адресу, который вы, вероятно, хотите настроить Alias вместо. Более того, если корневая папка вашего веб-сервера указывает на /var/www, у вас нет настройки: просто поместите ваши веб-страницы в подкаталог, например drupal должен позволить им доступ к your.domain.name/drupal

Другие вопросы по тегам