XAMPP 带有 Joomla 站点的子域

XAMPP Subdomain with Joomla Site

我正在使用 XAMPP v3.2.4,我不知道这是否有任何区别,但 Joomla 3.9.14

在我的本地环境中,我通过访问 localhost/mysite 来访问我的 Joomla 站点。我现在想要一个子域 localhost/apps.mysite

我创建了一个名为 apps 的文件夹,并将其放在我的 Joomla 根目录中,即 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 时,我看到以下错误;

Object not found! The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

Error 404 localhost Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.9

我需要更改什么才能访问我位于 http://localhost/apps.mysite

的子域

首先为本地主机创建一个 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 文件,您需要重新启动或通过命令 window

刷新 DNS 缓存
>ipconfig /flushdns

首先主机文件不处理文件夹,只是将IP地址映射到主机名。

主机文件应该是

127.0.0.1 localhost apps.mysite

127.0.0.1 localhost
127.0.0.1 apps.mysite

我更喜欢第二种方法,因为我可以评论这行..

第二个你的虚拟主机ServerNamelocalhost/apps.mysite不工作有子文件夹。

有效的服务器名称值可以是:domain.com、example.com、site1.example.com、user.site1.example.com 等等。

映射 apps.mysite 的虚拟主机示例应该是:

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

这是一个最小的示例,没有定义日志或特定于目录的规则。使用此配置,您将能够仅在您的计算机上使用 http://apps.mysite 访问您的站点,因为主机文件正在将 "apps.mysite" 解析为您的本地主机 (127.0.0.1)。

What do I need to change in order to access my subdomain at http://localhost/apps.mysite

http://localhost/apps.mysite 不是子域是具有文件夹 apps.mysite 的域本地主机,有效的子域是 subDomain.domain.com.

.com 是顶级域名
domain.com是域名
subDomain.domain.com 是 domain.com

的子域

希望对您有所帮助。