apache 子域名自动与子域名同名的目录绑定

假设有域名domain.com,已经泛解析子域名*.domain.com到该主机的ip,web根目录为/var/www/
在访问a.domain.com时,能自动绑定/var/www/a/目录,访问b.domain.com时,能自动绑定/var/www/b/目录

 

1、分别手动建立相应的virtualhost

主机配置文件vhost.conf

<VirutualHost *:80>
    DocumentRoot /var/www/
    ServerName domain.com
    ServerAlias *.domain.com
</VirtualHost>

以及/var/www/.htaccess文件

1
2
3
4
5
6
7
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
    RewriteCond %{REQUEST_URL} !^/%1/
    RewriteRule ^(.*)$ %1/$1
</IfModule>

此时不论以哪个域名访问,都会返回服务器内部错误

如果把RewriteCond %{REQUEST_URL} !^/%1/这行配置中的%1替换成具体的字符串,如a,这样的话,能够实现a.domain.com绑定到/var/www/a/目录,但是其他域名依然是/var/www/目录

 

2、任意主机名的虚拟主机

RewriteEngine on

RewriteMap    lowercase int:tolower

RewriteCond   "${lowercase:%{HTTP_HOST}}"   "^www\.([^.]+)\.example\.com$"
RewriteRule   "^(.*)" "/home/%1/www$1"

 

 

3、vhost_alias模块实现通配子域名

主机配置文件vhost.conf

复制代码
<VirtualHost *:80>
ServerAdmin webmaster@localhost
 
ServerName test.loc
ServerAlias *.test.loc
 
# This will be the wildcarded document root. Any folder you create in /var/www/test will be automatically a subdomain name.
VirtualDocumentRoot /var/www/test/%-3
 
# For symlinking your projects and htaccesses to work
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
 
ErrorLog /var/log/apache2/vhosts-error.log
 
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
 
CustomLog /var/log/apache2/vhosts-access.log combined
</VirtualHost>
复制代码

https://inchoo.net/magento/how-to-setup-semiautomatic-per-folder-wildcard-subdomains-on-your-local-linux-based-development-computer/

https://httpd.apache.org/docs/2.4/rewrite/vhosts.html

Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程 

posted @   柔和的天空  阅读(588)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示