2009-06-21 176 views
0

我用mod_rewrite的重写我的网站上的链接,像这样:mod_rewrite的接管所有的链接页面上

mysite.com/store/<store_id>/<store_name>/<page> 
mysite.com/store.php?id=<store_id>&page=<page> 

例如:

mysite.com/store/1313/johnny-walker-inc/13 
mysite.com/store.php?id=1313&page=13 

然而,作为一个结果,所有我的链接,我们正在以关系现在摆在开始的链路的末端,例如:

mysite.com/send_message.php 

已成为

mysite.com/store/1313/johnny-walker-inc/send_message.php 

我该如何解决这个问题?

这里是我的mod_rewrite代码,在情况下,我犯了一个错误吧:


RewriteRule ^store/([0-9]+)/[^/]+/([0-9]+)$ store.php?storeid=$1&page=$2 [L]

谢谢!

回答

5

你需要做相对于根的链接,就像这样:send_message.php

<a href="/send_message.php">link</a> 

注意斜线。

0

我个人只能看到一个解决方案:只要使所有的链接绝对。这不是mod_rewrite的问题,而是浏览器解释这些链接的方式。从他们的角度来看,你有一个目录结构,并相应地解释相对位置。

0

其他解决方案包括BASE href或只是重写所有可以通过虚拟上下文根引用的页面元素来显示客户端。