Субдомен XAMPP с сайтом Joomla - PullRequest
2 голосов
/ 09 января 2020

Я использую XAMPP v3.2.4, и я не знаю, имеет ли это какое-либо значение, но Joomla 3.9.14

В моей локальной среде я захожу на свой сайт Joomla, посещая localhost/mysite. Теперь я хочу иметь поддомен localhost/apps.mysite.

Я создал папку с именем apps и поместил ее в мой каталог Joomla root, который C:\xampp\htdocs\mysite\apps. Эта папка содержит один index.html файл.

Я внес следующие изменения:

В свой файл Windows hosts я добавил следующую строку;

127.0.0.1           localhost/apps.mysite

В свой файл httpd-vhosts.conf Я добавил;

NameVirtualHost 127.0.0.1:80
<virtualhost *:80="">
    DocumentRoot "C:/xampp/htdocs/mysite/apps"
    ServerName localhost/apps.mysite
    ServerAlias www.apps.mysite.localhost.com
</virtualhost>

Я не внес никаких других изменений в конфигурационные файлы. Я перезапустил Apache несколько раз, без изменений.

При посещении URL http://localhost/apps.mysite я вижу следующую ошибку:

Объект не найден! Запрашиваемый URL не найден на этом сервере. Если вы ввели URL-адрес вручную, проверьте правильность написания и повторите попытку.

Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.

Ошибка 404 localhost Apache / 2.4.41 (Win64 ) OpenSSL / 1.1.1 c PHP / 7.3.9

Что мне нужно изменить, чтобы получить доступ к моему поддомену в http://localhost/apps.mysite

Ответы [ 2 ]

2 голосов
/ 09 января 2020

Начните с создания VirtualHost для локального хоста на тот случай, если вы захотите использовать его для небольшой путаницы

# Virtual Hosts
#
<VirtualHost *:80>
  ServerName localhost
  ServerAlias localhost
  DocumentRoot "C:/xampp/htdocs"
  <Directory "C:/xampp/htdocs"/>
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

## then add main site
<VirtualHost *:80>
  ServerName mysite.local
  ServerAlias www.mysite.local
  DocumentRoot "C:/xampp/htdocs/mysite/"
  <Directory "C:/xampp/htdocs/mysite/"/>
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

## then add the sub domain
<VirtualHost *:80>
  ServerName aps.mysite.local
  ServerAlias www.aps.mysite.local
  DocumentRoot "C:/xampp/htdocs/mysiteapps/"
  <Directory "C:/xampp/htdocs/mysiteapps/"/>
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

Вам нужно будет добавить эти 2 сайта в файл C:\windows\system32\drivers\etc\hosts, например,

127.0.0.1 mysite.local aps.mysite.local
::1 mysite.local aps.mysite.local

Для изменения файла HOSTS вам нужно будет либо перезагрузить компьютер, либо повторно обновить sh DNS-кэш, например, из окна командной строки

>ipconfig /flushdns
1 голос
/ 09 января 2020

Первый файл хоста не обрабатывает папки, просто сопоставляет IP-адреса с именем хоста.

Файл хоста должен быть

127.0.0.1 localhost apps.mysite

или

127.0.0.1 localhost
127.0.0.1 apps.mysite

Я предпочитаю второй метод, потому что могу комментировать строку ..

Второй Ваш виртуальный хост ServerName localhost / apps.mysite не работает с подпапками.

Допустимыми значениями Servername могут быть: domain.com, example.com, site1.example.com, user.site1.example.com и son on.

Пример виртуального хоста для сопоставления apps.mysite должен быть следующим:

<VirtualHost *:80>
  ServerName apps.mysite
  ServerAlias  www.apps.mysite
  ## Vhost Document Root
  DocumentRoot "C:/xampp/htdocs/mysite/apps"
</VirtualHost>

Это минимальный пример, журналы не определены или правила каталога c определены. С этой конфигурацией вы сможете получить доступ к вашему сайту, используя http://apps.mysite только на вашем компьютере, потому что файл хоста разрешает "apps.mysite" для вашего локального хоста (127.0.0.1).

Что мне нужно изменить, чтобы получить доступ к моему поддомену в http://localhost/apps.mysite

http://localhost/apps.mysite не является подчиненным -domain - это локальный домен домена с папкой apps.mysite, действительный поддомен - subDomain.domain.com.

.com - домен верхнего уровня
домен. com - это доменное имя
subDomain.domain.com - это поддомен domain.com

Надеюсь, это поможет.

...