请问如何实现URL重写?

joezhan 2006-06-26 02:17:47
除了Apache Rewrite,能否通过重写getParameter等方式实现URL 重写呢?

比如,原来网址为:
http://www.abc.com/list.jsp?id=5
重写为:
http://www.abc.com/list/id/5 或
http://www.abc.com/list-id-5/

之类的...

可参考beijing.kijiji.com.cn

用什么办法可以实现?
请高手支招,谢谢!
...全文
773 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyg719 2006-06-29
  • 打赏
  • 举报
回复
URL重写有什么作用?
joezhan 2006-06-29
  • 打赏
  • 举报
回复
大家继续。。。。
luoqt 2006-06-27
  • 打赏
  • 举报
回复
mark
cuiweibing 2006-06-27
  • 打赏
  • 举报
回复
mark
pigo 2006-06-27
  • 打赏
  • 举报
回复


给段我对blog的url美化的规则配置供大家参考:


<rule>
<note>homepage blog username like http://blog.csdn.net/pigo</note>
<from>/u/([a-zA-Z0-9]+)/?$</from>
<to>/user/main.jsp?username=$1</to>
</rule>
<rule>
<note>homepage blog username like http://blog.csdn.net/pigo/rss.xml</note>
<from>/u/([a-zA-Z0-9]+)/rss.xml$</from>
<to>/user/rss.jsp?username=$1</to>
</rule>
<rule>
<note> blog catgory http://blog.csdn.net/pigo/category/42406.html</note>
<from>/u/([a-zA-Z0-9]+)/category/([a-zA-Z0-9]+).html</from>
<to>/user/cat.jsp?username=$1&catno=$2</to>
</rule>
<rule>
<note> blog catgory rss http://blog.csdn.net/pigo/category/42406.xml</note>
<from>/u/([a-zA-Z0-9]+)/category/([a-zA-Z0-9]+).xml</from>
<to>/user/catrss.jsp?username=$1&catno=$2</to>
</rule>
<rule>
<note> blog photo catgory http://blog.csdn.net/pigo/photo/42406.html</note>
<from>/u/([a-zA-Z0-9]+)/photo/([a-zA-Z0-9]+).html</from>
<to>/user/photo.jsp?username=$1&catno=$2</to>
</rule>
<rule>
<note>blog issue http://blog.csdn.net/pigo/archive/2006/03/23/783904.html</note>
<from>/u/([a-zA-Z0-9]+)/archive/([0-9]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+).html</from>
<to>/user/issue.jsp?username=$1&blogno=$5</to>
</rule>
<rule>
<note>blogarchive by month http://blog.csdn.net/pigo/archive/2005/08.html </note>
<from>/u/([a-zA-Z0-9]+)/archive/([0-9]+)/([0-9]+).html</from>
<to>/user/archivelist.jsp?username=$1&year=$2&month=$3</to>
</rule>
<rule>
<note>blogapi by user http://blog.csdn.net/pigo/blogapi.html </note>
<from>/u/([a-zA-Z0-9]+)/blogapi.html</from>
<to>/blogapi/?username=$1</to>
</rule>
<rule>
<note>blogadmin by user http://blog.csdn.net/pigo/blogadmin.html </note>
<from>/u/([a-zA-Z0-9]+)/blogadmin.html</from>
<to>/admin/index.jsp?username=$1</to>
</rule>

pigo 2006-06-27
  • 打赏
  • 举报
回复

你的正则表达式写错了当然没效果了!!!
仔细看看正则表达式的语法。


改成这样: <from>^/joyweb/news/(.*)$</from>




信息: org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Rule 0 run called with /joyweb/news/test.jsp
2006-6-27 10:27:39 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: matched "from"
2006-6-27 10:27:39 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.Rule DEBUG: needs to be redirected to /joyweb/test.jsp
2006-6-27 10:27:39 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: rule is last


batistuta8848 2006-06-27
  • 打赏
  • 举报
回复
留名关注~!
see00966 2006-06-27
  • 打赏
  • 举报
回复
joezhan 2006-06-27
  • 打赏
  • 举报
回复
大家说来说一说吧
joezhan 2006-06-26
  • 打赏
  • 举报
回复

TO: pigo

给大家好好讲讲urlrewrite filter的用法吧
joezhan 2006-06-26
  • 打赏
  • 举报
回复
要吧urlrewrite-2.6.0.jar放到WEB-INF/lib 下
jesse8013 2006-06-26
  • 打赏
  • 举报
回复
好帖
但是偶试了下 没有反映 哦
<rule>
<note>
The rule means that requests to /test/status/ will be redirected to /rewrite-status
the url will be rewritten.
</note>
<from>^/joyweb/news/(\S)$</from>
<to type="redirect">/joyweb/$1</to>
</rule>
然后我访问
http://localhost:80820/joyweb/news/add.jsp
url还是没有改变哦
我做了个
<a href="/joyweb/news/add.jsp">change</a>
最后鼠标放在url上 ie的状态栏 显示的还是
http://localhost:80820/joyweb/news/add.jsp
怎么回事了
积木 2006-06-26
  • 打赏
  • 举报
回复
555,理解严重失误。。。sorry.
baicha123 2006-06-26
  • 打赏
  • 举报
回复
写个过滤器获得URL重组后通过
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse respnose = (HttpServletResponse) res;
request.getRequestDispatcher(sRealURL).forward(req, res);
派发到真实路径
joezhan 2006-06-26
  • 打赏
  • 举报
回复
楼主想让他显示的路径改成这个方式 http://www.abc.com/list/id/5 让别人无法知道真实路径对吧,,

---------------------------------------------------------------------
就是这个意思

说白了,就是改写要传递得参数!!

不用 xx?aa=1&bb=2 这种形式显示了
qczl1224 2006-06-26
  • 打赏
  • 举报
回复
response.sendDirect

重定向,,你不明白楼主的意思吧,

还是我理解错了,页面路径是这个
http://www.abc.com/list.jsp?id=5

楼主想让他显示的路径改成这个方式 http://www.abc.com/list/id/5 让别人无法知道真实路径对吧,,


joezhan 2006-06-26
  • 打赏
  • 举报
回复
用sendDirect的话,也是得确定这个对应关系...
积木 2006-06-26
  • 打赏
  • 举报
回复
如果提醒到这份儿上还不明白的话……
积木 2006-06-26
  • 打赏
  • 举报
回复
response.sendDirect
joezhan 2006-06-26
  • 打赏
  • 举报
回复
谢谢,希望更多的人拿出更多的方案,分不够我可以加
加载更多回复(6)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧