我对整个.htaccess事情相当新,但我有一个问题。我想建立一个系统,以便在域名之前键入的所有内容都会重写到网站上的文件夹中。为了更清楚,这是一个例子:
如果用户键入例如:
example1.example.com
它必须从root / example1 /文件夹中获取站点。
如果用户键入例如:
klsdjf.example.com
它必须从root / klsdjf /文件夹中获取该站点。
我希望这清楚地解释了我想要实现的目标。
感谢名单,
答案 0 :(得分:0)
根据我的理解,您希望将通配符子域中的重写规则路由到根文件夹。
所以,
*.example.com => example.com/*
步骤1.配置DNS
首先,您必须确保正确配置了DNS主机。您必须确保您的域接受指向主机IP地址的通配符(*)。这应该是一个简单的A记录。
步骤2.告诉Apache以不同方式处理子域
完成此操作后,您必须告诉Apache以不同方式处理子域。
在httpd.conf中,查找如下所示的内容:
ServerAlias www.example.com example.com
并改为:
ServerAlias www.example.com example.com *.example.com
example.com,当然是您网站的名称。
步骤3.实际重写规则
然后,这是你的.htaccess:
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.example.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).example.com [NC]
RewriteRule (.*) %2/$1 [L]
这应该有效。