apache 伪静态,tomcat6 !!!

jhandsome007 2011-05-13 04:22:24
已将 apache2.2 与 tomcat6 整合,但这个伪静态 到底是怎么实现 ??

apache 的httpd.conf 中,也做了相应的配置:

LoadModule rewrite_module modules/mod_rewrite.so

<Directory />
Options FollowSymLinks
AllowOverride all
Order deny,allow
Allow from all
</Directory>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/task/Detail_(\d+)\.html$ $1/xsdetail.action?tid=$2
</IfModule>

在 list 页面中,链接是 task/Detail_1.html,task/Detail_2.html,...

点击后,并没有向 xsdetail.action 跳转,直接提示找不着 task/Detail_1.html 页面,

因为这个html 本身就是虚拟的,也就是 伪静态配置未能实现,请各位指教!!!
...全文
307 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2011-05-24
  • 打赏
  • 举报
回复
这个老实说,我还真不知道,之前的Rewrite都是写在一个文件里面,include到httpd.conf或者vhost里面去的。
jhandsome007 2011-05-24
  • 打赏
  • 举报
回复
To shine333:

是的啊,

AllowOverride ALL
shine333 2011-05-24
  • 打赏
  • 举报
回复
你的这个Directory是否允许Override呢???
jhandsome007 2011-05-24
  • 打赏
  • 举报
回复
同志们,有新的问题:

一直没弄好那个vhost,后来就没弄了,直接配置了 .htaccess 文件,来帮助rewrite,结果是OK 的,但有个问题:

在 .htaccess 中写的跳转规则,只能是一级目录,多些一级目录的话,就Not Found 了,如:

RewriteEngine On
RewriteRule ^detail_(\d+)\.html$ /xsdetail.action?tid=$1 [L]
这个是OK 的,但如果写成:

RewriteRule ^task/detail_(\d+)\.html$ /xsdetail.action?tid=$1 [L]
就提示找不着了,这是为什么呢。。。。

也就是在配置了多加了一个 task/ 目录,然后页面里路径写成 task/detail_1001.html ,就找不着

shine333 接着帮忙分析下啊 。。。
jhandsome007 2011-05-24
  • 打赏
  • 举报
回复

OK,谢谢!
shine333 2011-05-24
  • 打赏
  • 举报
回复
就是你一个apache处理多个网站
jhandsome007 2011-05-24
  • 打赏
  • 举报
回复
接着再问一下shine333:

就是那个 vhost ,配置它,是为了起什么作用的,???

现在我这边就没有配置它的 。。。
jhandsome007 2011-05-24
  • 打赏
  • 举报
回复

哦,好的,谢谢 shine333 !
shine333 2011-05-23
  • 打赏
  • 举报
回复
什么叫“得自己往里写”
jhandsome007 2011-05-23
  • 打赏
  • 举报
回复
To 24L shine333:

apache 的配置(httpd.conf) 中,没有 vhost 的配置,得自己往里写,现在就是需要一个 vhost 的配置,不知道说明白没有 !!!

To 25L:

恩,那个错误已经改过来了,现在是问题还没解决 。。。
小绵羊 2011-05-23
  • 打赏
  • 举报
回复
小绵羊 2011-05-23
  • 打赏
  • 举报
回复
话说html得给Apache处理,apache接受到^(.*)/task/Detail_(\d+)\.html$ 这个规则的html请求后会将它还原成真实url再交给tomcat处理。

你把html都给tomcat了apache根本就没处理这个请求
shine333 2011-05-23
  • 打赏
  • 举报
回复
你不是有vhost吗
你apache的<VHost>配置呢???把上面代码放到<VHost>里面看看
fly_cool 2011-05-23
  • 打赏
  • 举报
回复
这问题我真不知道,估计是高手的问题,整合tomcat和apache?我今天在该帖跟踪学习下
jhandsome007 2011-05-23
  • 打赏
  • 举报
回复
To shine333:

需要apache什么样的配置,在顶楼已经给出了,是那些吗?

现在主要就是那个 vhost 的配置啊,该怎么配置,?
jhandsome007 2011-05-23
  • 打赏
  • 举报
回复
那我的 DocumentRoot 写成 "D:/Program Files/tomcat6.0.18/webapps" 吗??

如果webapps 下有好几个项目呢 ,有影响吗? 其它的配置还有什么错吗?

或者说是,我如果不配置 vhost 呢,就实现不了 rewrite 了吗?? 也就是直接在 httpd.conf 里写rewrite 规则,这样,不生效,是吗?
shine333 2011-05-23
  • 打赏
  • 举报
回复
就放到httpd.conf里面就可以了。放到其他配置文件,你需要在httpd.conf里面加入
include conf/xxx/yourconfig.conf
这样的命令。其中路径可以是绝对路径,也可以是相对路径(相对于ServerRoot)
然后你documentroot错了,应该指向webapps目录。
因为你的apache的/tuiguang等价于/tuiguang
也就是说apache的document等价于你的tomcat的D:/Program Files/tomcat6.0.18/webapps
jhandsome007 2011-05-23
  • 打赏
  • 举报
回复
<VirtualHost localhost>

ServerName localhost
Serveralias localhost

DocumentRoot "D:/Program Files/tomcat6.0.18/webapps/tuiguang"

ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
</VirtualHost>

有的资料说,将这段代码置于httpd.conf中,有的说是置于\conf\extra\httpd-vhosts.conf 中,不知道以上配置是否正确,shine333 能否根据以上给出的信息,给个OK 的vhost 配置呢 ??
shine333 2011-05-23
  • 打赏
  • 举报
回复
我是说,你自己要写,写成什么样子了??
jhandsome007 2011-05-23
  • 打赏
  • 举报
回复
就是说那个httpd.conf配置中,没有vhost 的配置代码啊,不得自己写吗 。。。
加载更多回复(21)

81,092

社区成员

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

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