2009-06-21 169 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或只是重寫所有可以通過虛擬上下文根引用的頁面元素來顯示客戶端。