上文的整合完全是为了绑定子目录的需求


http://www.woosuko.com/ozhidao/ => http://ozhidao.woosuko.com/

Tomcat的虚拟主机设定并不能完成这样的工作,所以我们用到Apache的Mod_rewrite,URL重写

关于URL重写,用途确实很广,除了目录绑定子域名,泛域名解析,还有实现伪静态以优化SEO

很多讲究SEO的网站都会利用这个模块实现,虽然会耗费一些资源,但对搜索引擎比较友好~

网络上也有很多类似的配置说明,因为很少接触rewrite,看文档比较吃力,正则没太学好,刚上手确实很头疼,特别是很多例子都有这样那样的错误!
这里强烈BS一下只会转贴的童鞋-_-b

我暂时只用MAP的方式读取静态文本实现了我需要的功能,方法来自网络

我只有一个站点,所以就写在了虚拟主机的配置文件里,当然也可以也在.htaccess文件放在站点根目录里(前提是AllowOverride要设置为All)

略去其他内容

RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/etc/apache2/vhost.map
RewriteCond ${lowercase:%SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1 [L,PT]

特别注意的是,这些表达式要求格式比较严格,所以错一个空格都会报错,一开始不知道折腾了很久,最后看了国外网友的回复才发现

简单的解释是在文本中匹配二级域名及其访问的实际路径 -_-||

特别注意重写规则的RewriteRule最后的参数,没有它就会出现转向虽然成功了,但无法读取JSP,不交给Tomcat的情况~~

由于rewrite的复杂,暂时无法完全理解,我这里讲得也很简单,有什么疑问请留下回复,一起研究!

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
本文标题:二级域名绑定子目录【Web服务器系列】
本文地址:http://hitigon.im/%e4%ba%8c%e7%ba%a7%e5%9f%9f%e5%90%8d%e7%bb%91%e5%ae%9a%e5%ad%90%e7%9b%ae%e5%bd%95%e3%80%90web%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%b3%bb%e5%88%97%e3%80%91/