2013-02-28 71 views
0

在過去,我通過谷歌幾次使用這個網站,發現問題的有用幫助。現在我想問我自己的問題,併爲此登記。所以,「大家好!」htaccess/rewriterule和虛擬文件夾

我的「問題」涉及到htaccess-rewriterule和PHP/HTML。 比方說,我有一個網址「http://www.mydomain.com/showdata.php?ID=9」,我想重寫爲「http://www.mydomain.com/person/firstname-lastname-9.php」。我的計劃是「人」只是一個虛擬目錄。 的重寫規則部分是沒有問題的:

RewriteRule ^person/(.*)-(\d+)\.php$ /showdata.php?ID=$2 

新的URL導致在MySQL數據庫中正確的條目。問題是CSS文件沒有被加載,並且導航中的所有鏈接指向「person」文件夾。 我以爲我可以「鏈接」到一個虛擬文件夾,因爲htaccess會導致瀏覽器到服務器上的真實文件。我實際上可以創建文件夾「person」並將include文件複製到其中,但這意味着我必須更改源代碼中的許多路徑。這是一個很混亂的工作,我寧願避免這種情況。 有沒有辦法讓一個虛擬文件夾(關鍵字),但仍然有php腳本包含主文件夾中的文件?

+0

爲什麼不只是重寫到showdata.php?所以用戶看到'http:// www.mydomain.com/person/firstname-lastname-9',但服務器看到'http://www.mydomain.com/showdata.php?ID = 9' – Leeish 2013-02-28 00:14:28

+0

你在找對於'' – mario 2013-02-28 00:18:30

+0

我有頁面和錨鏈接,我讀到不能很好的與錨點配合使用。 – Leveller 2013-02-28 01:47:29

回答

0

添加CSS,JS和圖像更規則..

我會假設你的CSS/JS /圖像與名字 「CSS」 的文件夾, 「JS」, 「圖像」

例如

RewriteRule (.*)/(images|css|js)/(.*) /$1/$2 [L] 
# | means OR , [L] means last rule i.e. do not continue to process other rules after this. 
+1

在這種情況下,'RewriteCond'可能更容易。 – mario 2013-02-28 00:19:33