ITS-CMS 2.0 URL设计构想

王朝java/jsp·作者佚名  2006-04-16
窄屏简体版  字體: |||超大  

我这次重做cms,准备所有的链接按照下面方式作

http://localhost/index.html

http://localhost/cms/news/index.html 列出所有新闻

http://localhost/cms/news/index1.html 翻页

http://localhost/cms/news/20060410/n000000001.html 列出具体一条

http://localhost/cms/news/xjxjynews/index.html 可以继续往下加

http://localhost/cms/xxjj/index.html

http://localhost/cms/xxjj/xxld/index.html

http://localhost/cms/xxjj/xxld/about.html

整个节点按树状延生

所有/cms的下面都被拦截,然后根据URI调用相应模板

也就说/cms下面的路径都是虚假的,都不是服务器上的实际路径

而且这样的链接便于被搜索。便于用squid作前置缓存。便于隐藏实际后台实现

统一的入口也便于预防黑客攻击,防止例如 ../.。 或者 sql注入

如果使用php,实现的方法是使用URL复写

# BEGIN ITSCMS RESTRICTIONS

RewriteEngine on

RewriteBase /itscms

RewriteRule cms/.*?\.html cms.php

# END ITSCMS RESTRICTIONS

然后解析URL

function get_url_params( $base_url)

{

$request = substr( $_SERVER['REQUEST_URI'], strlen( $base_url));

if( substr( $request, -1) == '/')

$request = substr( $request, 0, -1);

return explode( '/', $request);

}

如果用JAVA实现

用/cms/* 实际上是转到servlet

使用 HttpServletRequest req

String pathInfo = req.getPathInfo() ;

然后解析路径

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航