我正在构建一个不同用户可以注册的Web应用程序。现在,我的应用程序的用户拥有类似www.example.com/username
的主页网址。但我想为用户提供类似网址的www.username.example.com
。有没有简单的方法来做到这一点?或者我必须向客户提供带有新域名的新机器?
答案 0 :(得分:2)
首先,您需要为www.username.example.com
配置指向www.example.com
的DNS CNAME记录。这样,www.username.example.com
的所有请求都将转到您的Web服务器。您可以为每个用户名执行此操作,也可以使用通配符* .example.com
接下来,您需要配置您的网络服务器以响应具有Host:www.username.example.com标头的请求(或再次使用通配符)。
如果完成上述两个步骤,由于DNS只处理域名,您需要重写规则,这取决于您的网络服务器,但对于像这样的apache应该这样做:
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{HTTP_HOST} ^www\.([a-zA-Z0-9]+)\.example.com$ [NC]
RewriteRule ^ /%1%{REQUEST_URI} [L]