2009-09-24 44 views
1

我想讓我的舊分頁類工作,它依靠PHP中的$ _GET可用的變量來重建分頁鏈接的URL,它工作的很好,但現在我正在改變具有「漂亮的url」與mod-改寫。如何獲取URL中的值並將其修改爲使用mod-rewrite進行分頁?

所以這

domain.com/?p=the-pagename-identifier &用戶ID = 12 &頁= 3

現在早就

domain.com/the- pagename-identifier/12/page-3

問題是我的舊版分頁的PHP依賴於GET變量重新構造該URL並確保URL中存在的任何變量保留在它爲新頁面創建的新URL中,現在我被卡住了,因爲我需要它來處理它出現在URL中的「虛擬」目錄,domain.com/mail/inbox/page-12真的在通過我的索引文件運行的根目錄中domain.com/index.php?p=mail.inbox & page = 12

我迷路了,因爲有些頁面會有更多的東西那麼其他人在URL的GET部分。

由於所有頁面都是通過index.php在根目錄級加載的,因此我幾乎可以鏈接頁面而沒有完整的URL路徑,而不是像domain.com/mail/page-2它最終會成爲domain.com/page-2因爲示例中的郵件目錄不是真實的目錄。那麼是否有可能獲得使用mod-rewrite製作的頁面的URL中的值,以便我可以讓它認爲它在子文件夾中,並將頁碼添加到頁面的當前URL?

回答

1

這個重寫規則:

RewriteRule ^/([0-9a-zA-Z-]+)/([0-9]+)/page-([0-9]+)$ /index.php?p=$1&userid=$2&page=$3 

將改變這一點:

domain.com/the-pagename-identifier/12/page-3 

進入這個:

domain.com/?p=the-pagename-identifier&userid=12&page=3 

完全透明的最終用戶。

因此,除了從生成新的URL,你的應用程序根本不需要改變。

+0

對不起,如果我把它弄糊塗了,我有所有的正則表達式和mod重寫工作,我的問題是我的PHP函數,在需要時生成分頁鏈接,我很難試圖讓它正確地建立新的鏈接,而不是使用page = 12&user = 44類型的界面我試圖讓我的文本鏈接轉到我的mod重寫創建的正確頁面,但這變成了一個真正的問題。我最近的嘗試是這樣的$ _SERVER [「REQUEST_URI」]。'/ page /'。 $頁面編號;這幾乎可以工作,如果我在分頁號碼不在URL的第一頁上... – JasonDavis 2009-09-24 00:20:14

+0

但是一旦我去了一個頁面,那麼它會創建domain.com/mail/page2/page3 – JasonDavis 2009-09-24 00:20:45

+0

@jasondavis :我認爲你誤解了mod重寫:mod-rewrite應該改變人們點擊的漂亮url,以便你的app可以閱讀而不需要訪問者看到醜陋的url。因此,除了可選地修改正則表達式,最後一行說明了這一切:*因此,除了生成**新的URL之外,您的應用程序根本不需要改變。* – jeroen 2009-09-24 00:28:41

相關問題