我想构建许多子域,最终从一个目录下载代码。
示例:
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 有效(显示此目录中的代码)。其他子域名不显示(该网站不存在)
正确的方法是在 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>