首先声明:大牛们,别笑,俺是一小菜菜!
这两天发现项目上貌似有点问题,很多页面在跳转的时候 往往只是简单的<a href="xxxxxx.MM">
其实这样 也许会给恶意攻击者、敌对的竞争方带来便利!
因此,想到用urlrewrite来弄弄,但是老是出现问题!!总是跳不过去!
在大牛牛的指导下,终于搞定了,还是来做一个总结吧!!
首先下载urlrewrite的jar包。
然后在web.xml里面配置filter,这个filter必须配置在struts的filter前面,因为这是一个执行顺序的问题!
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>debug</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
之后,在相应的web-inf下面新建一个rule文件,用相应的规则处理url的问题!
这个文件名使用urlrewrite.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
"http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
<urlrewrite>
<rule>
<from>^(.*)\.do$</from>
<to type="forward">$1.MM</to>
</rule>
</urlrewrite>
这是我所用到的url变换规则,这个东东困扰了我好久!
再在配置文件web.xml中加上
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
<dispatcher>INCLUDE </dispatcher>
</filter-mapping>
其实搞出来就是那么的简单,其中注意4个方面,就能很简单的做出来!
1、<from> <to>
也就是说这个.do 是在页面里面写好的,也就是例如:
<body>
<a href="123123.do">高帅富</a>
</body>
从页面提取(from)132123.do文件映射到(to)什么文件!
2、其实这个.do文件是虚拟的,是没有这个文件的!其对应的文件名为 123123.MM
3.关于正则表达式 ,请自己在网上找相关的api文档 就会有相应的解答!
这里指出:<to type="forward">$1.MM</to>中的$1.MM,“$1”这个符号,指的是上文中的小括号()里面的内容,如果有两个小括号(),$1指向指向左起第一个,$2指向左起第二个!
4、type="forward"这个 这个可是把我搞惨了 还有有俺家的大牛牛在 ,才把俺引出了迷雾!
平时用forward的时候都没注意到,这意思是在跳转页面的时候,url地址在地址栏不变,什么不变呢??
还是按照123123.do输出在地址栏。
而,如果你写成了type="redirect" 那么,地址栏将会变成下面那个123123.MM!!!呵呵呵
如需将action的跳转 例如:list变成list.do 只需在struts配置文件加上
<constant name="struts.action.extension" value="do"></constant>
<!--action后缀.do -->
web.xml里配置
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>do</param-value>
</init-param>
总结一句话:小菜菜的基础知识不扎实 好高骛远!! 有爱好IT的朋友可以加我QQ:474515923
互相学习 共同进步 最终达到共同富裕
分享到:
相关推荐
标题中的“64位 wi8 iis7 isapi_rewrite 伪静态配置软件亲测可用”指的是在64位操作系统的Windows 8 (wi8) 和Windows Server 2012 (win2012) 上,使用IIS7 (Internet Information Services 7) 配合ISAPI_Rewrite模块...
标题中的“64位系统下可用的rewrite,单独站点设置”指的是在64位操作系统的环境下,使用URL重写技术的解决方案。URL重写是一种Web服务器技术,它允许你通过改变用户请求的URL来实现不同的功能,比如优化SEO、隐藏...
"TAG静态化-5.7-亲测可用转拼音"这一标题揭示了我们讨论的主题是关于织梦5.7版本的TAG标签静态化,并且这种静态化采用了拼音转换的策略。 织梦(DedeCMS)是一款广泛使用的开源CMS,它允许用户方便地创建、管理和...
"绝对有效果,亲测"表明这种方法经过验证,可以成功应用于实际环境中。 在IIS6中实现伪静态,通常需要以下步骤: 1. **安装扩展**:压缩包内的 `ISAPI_Rewrite3_0104.msi` 文件是第三方的URL重写工具,如Helicon ...
亲测环境:Linux+nginx+php5.6+mysql5.5 基本需求:php + 伪静态(必须) 配置: 系统: windows/linux web服务器: iis/apache/lighttpd/nginx php:PHP: 5.2 版本以上 注:php需要支持zlib库和iconv库(一般默认...
亲测可用 # wechatshop 微信小程序商城完整版 - [API服务端源码](server_api) - [微信小程序端源码](wxss_src) - [API服务端演示快照](docs/admin_snapshot.md) - [微信小程序端演示快照](docs/wxshop_snapshot.md...
同时,确认你的网站服务器支持并启用了mod_rewrite模块。另外,检查系统设置中关于URL路径的部分,确保二级页面的路径设置无误。 问题三:访问地址异常 这可能是由于DNS解析问题、服务器配置错误或SSL证书问题导致...
UrlRewriter通常是一种URL重写工具,如IIS的UrlRewrite模块或Apache的mod_rewrite模块,它们可以读取配置文件中的规则,将请求的动态URL转换为静态化的形式。在新云CMS中,UrlRewriter配置文件用于定义这四套不同的...
4、出现提示 URL Rewrite 这个是伪静态问题 5、写入伪静态,在网站设置伪静态,伪静态当前中的空白处粘贴以下伪静态规则。 【私人云盘源码】/Cloudreve云盘源码/带cloudreve搭建教程 一套简洁好看的云网盘系统+文件...
"功能全面,亲测可用"则表示该系统具备多种功能,并且经过实际测试,确保其在实际运行中的稳定性和可靠性。 【标签】"股票配资源码"进一步明确了这个软件的核心功能,即股票配资服务,通过提供杠杆资金,帮助投资者...
搭建的话也比较简单,视频教程和文本教程都已经配备,支持URL优化自定义规则,无需购买播放器,带有采集接口,可以自己写采集,规则和标签都有。 测试环境: Nginx 1.18.0--MySQL 5.6.50--PHP-5.6 //PHP5.6安装拓展...