有没有办法将所有指定的子域redirect到特定的本地文件夹? 喜欢这个:
我想附加一个子域名到本地文件夹,但域名是通配符(可以是任何东西),这个域名将被用作文件夹名称。 例:
blog.* -> /home/www/blogs/* so it goes like this: blog.example.com -> /home/www/blogs/example.com blog.blabla123.com -> /home/www/blogs/blabla123.com
我使用apache2,所以我可以编辑configuration或创build.htaccess? 有任何想法吗? 谢谢。
对于您在Apache中设置的域VirtualHost,为该博客设置相应的VirtualHost。 像这样的东西:
<VirtualHost 1.2.3.4:80> ServerName blog.example.com DocumentRoot /home/www/blogs/example.com </VirtualHost> <VirtuaHost 1.2.3.4:80> ServerName example.com ServerAlias www.example.com DocumentRoot /home/www/example.com/ </VirtualHost>
Apache的mod_vhost_alias模块支持dynamicconfiguration的大容量虚拟主机 ,它允许您设置一个用于多个虚拟主机的单个configuration集,其中除了文件所在的目录之外,域与域之间的所有内容都是相同的。
dynamic虚拟主机的秘密是VirtualDocumentRoot指令。 它看起来像这样:
UseCanonicalName Off VirtualDocumentRoot /var/www/%0/public_html/
这可能对应于 –
/var/www/www.example.com/public_html/
查看UseCanonicalName的文档,看看它为什么应该存在,然后使用目录名插值来查看%0含义,以及是否可以将其他东西放在那里。
Mod_rewrite允许您提供一组转换规则,告诉Apache将一个url转换为另一个url,然后将请求重新路由到该URL可能需要的地方。
有了它,你可以做任何事情,但有时候需要一些心理体操来理解你告诉服务器做什么。 我不会深入研究如何使其工作,因为写入重写规则时,如果不能很好地理解它们的工作方式,最终会以疯狂的方式结束。 在跳跃之前最好学习。
至less浏览一下mod_rewrite手册 ,仔细查看参考页面 ,阅读示例 ,并确保了解它们是如何工作的。