tomcat默认情况下不带www的域名是不会跳转到带www的域名的,而且也无法像apache那样通过配置.htaccess来实现。如果想要把不带“www'的域名重定向到带”www"域名下,又不想写代码,可以使用UrlRewriteFilter来实现。

一、前期准备

1.安装JDK

yum install java-1.8.0-openjdk-develvim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/java/latest                   # 首先定义JAVA_HOME的环境变量
export PATH=$JAVA_HOME/bin:$PATH                    # 然后追加.  /etc/profile.d/jdk.sh

2.安装tomcat

yum install tomcat tomcat-admin-webapps.noarch \
tomcat-webapps.noarch tomcat-docs-webapp.noarch

二、urlRewriteFilter实现重定向

urlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Tomcat,jboss,jetty,Resin,Orion等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。

1.下载UrlRewriteFilter

UrlRewriteFilter的官方网站http://tuckey.org/urlrewrite/
jar包要放在应用的WEB-INF/lib目录中

yum install wget -y
cd /usr/share/tomcat/webapps/ROOT/WEB-INF/lib/
wget http://central.maven.org/maven2/org/tuckey/urlrewritefilter/4.0.3/urlrewritefilter-4.0.3.jar

2.配置过滤规则

在应用的./WEB-INF/目录下创建一个名为urlrewrite.xml规则文件,名称千万不能出错!!

vim ./WEB-INF/urlrewrite.xml<urlrewrite><rule><name>seo redirect</name><condition name="host" operator="notequal">^www.example.com</condition><condition name="host" operator="notequal">^localhost</condition><from>^/.*</from><to type="redirect" last="true">http://www.example.com/$1</to></rule></urlrewrite>

3.配置tomcat

在应用的`./WEB-INF/中的web.xml中添加

vim ./WEB-INF/web.xml
<web-app>           # 要在web-app中,在其它servlet mapping前加入
......<filter><filter-name>UrlRewriteFilter</filter-name><filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class></filter><filter-mapping><filter-name>UrlRewriteFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping>
</web-app>

参考
http://tuckey.org/urlrewrite/

转载于:https://www.cnblogs.com/aubin/p/8511936.html

Tomcat URL重写相关推荐

  1. 用自定义IHttpModule实现URL重写

    在本人拙作<ASP.NET夜话>第十二章中探讨过ASP.NET底层运行机制的问题,在该书中本人也讲到过了解一些ASP.NET的低层机制对于我们灵活控制ASP.NET有很大帮助,在该书中本人 ...

  2. Session,Cookie,jsessionid,Url重写

    在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码: < % cookie[]cookies ...

  3. java 重写session_关于session的实现:cookie与url重写

    本文讨论的语境是java EE servlet. 我们都知道session的实现主要两种方式:cookie与url重写,而cookie是首选(默认)的方式,因为各种现代浏览器都默认开通cookie功能 ...

  4. Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解...

    大纲 一.前言 二.环境准备 三.安装与配置Nginx  (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡  (负载均衡算法:nginx负载算法 up ...

  5. 关于URL重写的实现

    对于session,我想大多学JAVAEE的同学都很清楚. 当一个客户请求一个页面时,服务器端会为该客户分配一个会话ID, 然后在返回给客户的响应头中添加一个头部: Set-Cookie:JSESSI ...

  6. java 泛域名_泛域名和URL重写

    Apache与Tomcat的整合,以及Rewrite的使用  http://blog.niwota.com/a/163891.htm 1.  支持二级动态域名 a.首先需要域名提供商支持 泛域名解析. ...

  7. Servlet会话管理一(URL重写和表单隐藏域)

    会话可以简单的理解为客户端用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器的整个过程称为一个会话.即一个客户端用户和服务器端进行通讯的过程,也是客户端和服务器端之间的数据传 ...

  8. 配置伪静态(URL重写)

    本篇借鉴了很多文章,这里做个记录. 有时我们的导航栏出现xx.aspx?id=x&name=xx 等等这样,会显得不好看,我们可以利用伪静态来美化我们的导航栏,伪静态的形式可以自己定义,本质还 ...

  9. ASP.net实现无扩展名的URL重写。简单、方便、无需ISAPI

    URL重写已经有很多的方法,但是多数都有一个缺点,就是不支持无扩展名的网页.微软提供的方法需要在根目录里面建立jyk的文件夹,然后再建立一个default.aspx的文件,如果您有100名会员的话,这 ...

最新文章

  1. 图解支付宝钱包技术架构
  2. .vue文件_在idea中创建vue文件
  3. SpringBoot使用security和jwt进行鉴权设计
  4. 安装kilo版本openstack-dashboard时出现的python compress command not found错误解决办法
  5. 深度学习框架太抽象?其实不外乎这五大核心组件
  6. render与render_to_response的区别
  7. 数据结构 - 栈(数组模拟栈操作)
  8. 转载:使用Wireshark解密TLS 1.3流量
  9. python文件目录提取_python-按日志提取文件并创建相关目录
  10. 41. 和为s的两个数字VS和为s的连续正数序列(C++版本)
  11. 吊打Navicat?这款神器牛逼了~~ [ 必看 ]
  12. POI读取word文档后插入内容以及设置标题样式
  13. MacBook 自带输入法 中英文切换 搜狗输入法 安装 配置
  14. php 分享微博,PHP调用微博接口实现微博登录
  15. 在阿里云上搭建自己的虚拟机(学习笔记)
  16. R语言使用quantmod包的getSymbols函数从指定金融数据源获取指定时间段的股票数据、获取美国10年期债券收益率数据
  17. 广东高中生多少人_广东2016高考五大变化 考生总人数73.3万
  18. golang mysql 崩溃_使用GoLang与mysql连接失败
  19. CSS 学习笔记 - 盒模型
  20. 《如何五分钟创建自己的新币token 》Dapp开发 Web3+以太坊+智能合约开发 (一)

热门文章

  1. php高德地图坐标在多边形,多边形的绘制和编辑
  2. numpy.core.defchararray.join
  3. Java折叠_[Java教程]Jquery中菜单的展开和折叠
  4. python怎么用pip下载_python怎么用pip安装包
  5. php生成图片文件流,php 如何把图片转化为字节流存储到数据库?
  6. 使用 Hyper-v 虚拟化域控制器
  7. 阿里云容器服务飞天敏捷版详解
  8. Java Web学习总结(16)——JSP的九个内置对象
  9. Java基础学习总结(19)——Java环境变量配置
  10. mysql crc16_MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误