apache rewrite规则实现白名单
需求:
六个文件的入口,其他都重定向到index
自己的思路:
正则找出不是六个文件的URL的模式,进行过滤。
对比同事的结果,自己思路的问题:
1.想找出所有不符合规则的,越想越多,无法下手。---------------- 思路错误,应该制定白名单,
2.概念错误,弄错REQUEST_URI和REQUEST_STRING的概念 基础知识不牢固。
最后结果:
<IfModulemod_rewrite.c> RewriteEngineon RewriteCond%{REQUEST_URI}^/$ RewriteRule^/(.*)/index.asp$1[L] RewriteCond%{REQUEST_URI}^/index.asp[NC,OR] RewriteCond%{REQUEST_URI}^/o.asp[NC,OR] RewriteCond%{REQUEST_URI}^/s.asp[NC,OR] RewriteCond%{REQUEST_URI}^/error.asp[NC,OR] RewriteCond%{REQUEST_URI}^/favicon.ico[NC,OR] RewriteCond%{REQUEST_URI}^/status.taobao[NC,OR] RewriteCond%{REQUEST_URI}^/app/thirdparty/webbox.asp[NC,OR] RewriteCond%{REQUEST_URI}^/static/[NC] RewriteRule^.*-[L] RewriteCond%{REQUEST_URI}!^/index.asp$ RewriteRule^.*–[F,L] </IfModule>