mod_rewrite接管页面上的所有链接

时间:2009-06-21 16:52:05

标签: php mod-rewrite seo

我已经使用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]

谢谢!

3 个答案:

答案 0 :(得分:5)

您需要建立相对于根的链接,如下所示:

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

请注意send_message.php之前的斜杠。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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