Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1480831
  • 博文数量: 187
  • 博客积分: 10375
  • 博客等级: 上将
  • 技术积分: 3127
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-07 10:58
文章分类

全部博文(187)

文章存档

2013年(1)

2012年(8)

2011年(28)

2010年(36)

2009年(47)

2008年(67)

我的朋友

分类: 网络与安全

2009-03-18 16:23:58

    最近新开发的项目用Apache2+tomcat5.5,在进行安全测试时,发现如果不输入index.do就不会访问默认的首页,经过查找,在Apache中使用RewriteRule(重写URL)可以实现这种功能。
   

    下面是Apache httpd.conf的配置内容:

 

1、当访问的URL只输入到模块的根目录(例:),在不输入index.do时,能正常显示index.do的内容:

需要加载rewrite_module,在httpd.conf文件中添加下面两行(如果是被注释掉的,把注释去掉即可,需要保证在Apache_home/modules目录下有对应的.so文件)

LoadModule rewrite_module modules/mod_rewrite.so

 

2、在虚拟机的内部配置rewrite rule:

         DocumentRoot D:\web

         ServerName

         ErrorLog logs/dev-error.log

CustomLog logs/dev-access.log common

 

         ##### 以下是发生错误时显示相对应的错误页面

         ErrorDocument 403 /common/error/403.html

ErrorDocument 404 /common/error/404.html

         ErrorDocument 405 /common/error/405.html

         ErrorDocument 500 /common/error/500.html

         ErrorDocument 503 /common/error/503.html

         #############################################

        

         ### 设定Rewrite 使用状态

         RewriteEngine on

         ### URL指定在demo的根目录时,显示index.do的内容。[PT]选项是不会改变所访问的URL

         rewriterule .*/(.*)/$  /$1/index.do [PT]   

         ### 如果直接访问jsp页面(如:http:///demo/main/head.jsp),则直接转到错误页面

         rewriterule .*/.*\.jsp$ /errorHandle.do [PT] 


        #防止URL注入代码入侵

        RewriteCond "%{QUERY_STRING}"   "^(declare|char|set|cast|convert|delete|drop|exec|insert|meta|script|select|truncate|update|cbfunc)=.*" [NC]

        #如果符合上面的条件,则重定向到/errorHandle.do

        rewriterule /* /errorHandle.do [PT]

        #rewrite log输出到文件
        rewritelog logs/rewrite.log

        #定义输出log的级别,0~9, 0是不输出log, 9是输出全部的log, apache文档中推荐使用2
        rewriteloglevel 9

        ### 也可用这种方法实现重定向,但是URL会显示重定向后的URL

        #RedirectMatch .*/.+/$ ./index.do

        ### 同上

        #RedirectMatch .*/.*\.jsp$ /errorHandle.do




参考资料:


阅读(3058) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~