首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

apache url重写[flag]标记问题!求助

本帖最后由 suihr 于 2009-7-17 13:52 编辑

服务器环境为windows 2003sp2+Apache+PHP5.2.8

位置:D:/www
目标:1.让用户看到规则的URL显示,隐藏传递的参数
      2.定义规则后使用[L,PT]标记,为什么看起来好像继承了前面的规则解析后的路径呢?
.htaccess如下:

Options +FollowSymLinks

RewriteEngine on
RewriteBase /
# RewriteCond %{HTTP_HOST} ^www\.123\.com$ [NC]
# RewriteRule ^(.*)$ http://123.com/$1 [R=301,L]

RewriteRule  ^images/$                      /images/ [L]
RewriteRule  ^list/(\d+)\.html$             list.php?catId=$1   [L,PT]
# RewriteRule  ^list/(\d+)\.html$             list.php?catId=$1   [R]
RewriteRule  ^search/(.*)\.html$          list.php?searchWord=$1    [L]
RewriteRule  ^type/(\d+)/(\d+)\.html$    type.php?id=$1&catId=$2 [R,L]

RewriteRule  ^hbcx/([a-z]+)/(\w+)\.html$     search.php?Field=$1&Cont=$2 [PT]
以上规则,在解析时想让客户端用户看到的地址是规则的url如:http://www.123.com/list/111.html,
问题一:使用 RewriteRule  ^list/(\d+)\.html$    list.php?catId=$1   [R] 规则后访问正常,连接都能打开,可是地址栏仍然显示的是list.php?catId=111,没有隐藏,
要是flag改成[L,PT]后,地址栏显示的是规则的URL了,可是页面的连接就无法正常访问了,而且我看到连接的地址都是list/list/111.html了,多了个list/而且点击其他的连接后list/还会不断地增加,好像继承了上面的解析,list/list/list/list/111.html了
单独使用[L]也不行,不知道是何原因,第一次配置,望各位高手指点一二啊!
RewriteBase / 根目录的配置具体怎么写呢?
昵称: suihr  时间: 2009-07-10 12:40:00
没人能解决?
昵称: suihr  时间: 2009-07-17 09:29:00