app1.example.com -> example.com/app1app2.example.com -> example.com/app2something.example.com -> example.com/something
所有子域只有一个级别.
问题
>哪些DNS提供商允许我这样做?
>这些替代方案是否可行?
>将它们全部重定向到具有静态IP的特殊webapp,该IP重定向到正确的子文件夹.我如何知道他们来自哪个子域?
>在需要时以编程方式创建每个规则.哪些DNS提供商具有API访问权限以添加规则?我认为亚马逊Route 53可能就是这里的答案.
Which DNS provIDers allow me to do this?
所有有能力的人.它甚至不需要是特定于DNS的提供,大多数好的主机也会帮助您.有两个阶段:
>为* .example.com添加了DNS条目
>主机的Web服务器(例如Apache)设置为通过将其路由到example.com的VirtualHost来响应* .example.com.
然后,在最后,添加一个.htaccess条目,该条目使用RewriteRule来捕获每个子域,并使用http_HOST变量将其重定向到文件夹.
未经测试,但是这样的事情:
RewriteEngine onRewriteCond %{http_HOST} ^[^.]+\.example\.com$RewriteRule ^(.+) %{http_HOST} [C]RewriteRule ^([^.]+)\.example\.com(.*) http://example.com//
假设用户请求app1.example.com/bob.
第2行
这将捕获http_HOST中的app1.example.com – 它将与RewriteCond匹配.
3号线
通常,Apache只会通过/ bob来检查RewriteRule.要使用子域,我们通过强制下一个匹配规则来利用链接
${http_HOST}| ^ /bob^ app1.example.com
第4行
最终的RewriteRule现在与app1.example.com/bob匹配,而不仅仅是/ bob.因此,它可以具有“完整”正则表达式以匹配此子域和路径,并执行所需的重定向.
如果您不想要此功能,则可以简化规则.
Are these alternatives feasible? Redirect them all to a special webapp
with a static IP that redirects to the proper subfolder. How can I
kNow from which subdomain they came from?
没有确定的方法可以做到这一点.你可以试试http Referer,但它并不总是由所有浏览器发送,有些防火墙会删除标题等.
Programatically create each rule when I need it. Which DNS provIDers
have API access to add rules? I think Amazon Route 53 might be the
answer here.
这实际上会导致更复杂的解决方案,所以我不推荐它.它还会造成延迟:DNS缓存需要更新,某些访问者无法立即使用子域,直到他们这样做.至少根据我的建议,他们能够立即开始.
总结以上是内存溢出为你收集整理的domain-name-system – 将所有子域重定向到子文件夹全部内容,希望文章能够帮你解决domain-name-system – 将所有子域重定向到子文件夹所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)