多个子域从一个目录拉取代码

问题描述 投票:0回答:1

我想构建许多子域,最终从一个目录下载代码。

示例:

site1.domain.com site2.domain.com site3.domain.com

应从包含网站文件的目录(即 www/site)内的站点目录下载代码。

我使用 php、apache 和 htaccess。

我准备了以下代码:

RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTP_HOST} !^domain\.com$ [NC] RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC] RewriteRule ^(.*)$ /site/$1 [L]

不幸的是它不起作用。还有什么我应该补充的吗?例如。配置site.domain.com子域并为主域设置DNS(A记录)?如果您能提供帮助或教程链接,我将不胜感激。

仅 site.domain.com 有效(显示此目录中的代码)。其他子域名不显示(该网站不存在)

php .htaccess subdomain
1个回答
0
投票

正确的方法是在 Apache 中创建多个指向同一目录的虚拟主机。

在您的虚拟主机

.conf
文件中(查看位置)添加、复制或更新虚拟主机,如下所示:

<VirtualHost *:80>
    ServerName domain.com
    ServerAlias www.domain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/vhosts/domain.com/public_html

    <Directory /var/www/vhosts/domain.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog /var/www/vhosts/domain.com/error.log
    CustomLog /var/www/vhosts/domain.com/requests.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName site1.domain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/vhosts/domain.com/public_html

    <Directory /var/www/vhosts/domain.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog /var/www/vhosts/domain.com/error.log
    CustomLog /var/www/vhosts/domain.com/requests.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.domain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/vhosts/domain.com/public_html

    <Directory /var/www/vhosts/domain.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog /var/www/vhosts/domain.com/error.log
    CustomLog /var/www/vhosts/domain.com/requests.log combined
</VirtualHost>
© www.soinside.com 2019 - 2024. All rights reserved.