2015-06-06 68 views
0

最近我一直在一個朋友的網站上工作,她可以上傳她的畫作。隨着這些圖像輸入一些像尺寸和技術的信息。這些圖像被添加到相冊中,然後顯示在相冊中。功能在那裏,現在我只想重寫網址,使它們看起來不像album.php?album_id=xx&name=xx。我希望這些網址像album/id/name。要做到這一點,我有以下重寫規則:URL重寫不做它應該做的事情,但代碼看起來很好

RewriteRule ^album/([0-9]+)/([0-9a-zA-Z_-]+) album.php?album_id=$1&naam=$2 [NC] 

這意味着,如果我去album/1/test,它應該得到的數據對於這張專輯並顯示它,但它不完全工作。它確實獲取了該專輯的數據,但圖像未加載(即使在檢查源代碼正確加載時),並且頁面上的任何位置都沒有任何樣式,即使樣式表加載正確。奇怪的是,如果我去album.php?album_id=1&naam=test整個頁面的工作,所以我知道album.php頁面中的代碼工作。我還創建了一個test.php文件用下面的代碼:

<?php 
echo 'ID: ' . $_GET['album_id'] . '<br>'; 
echo 'Naam: ' . $_GET['naam']; 

用下面的重寫規則:

RewriteRule ^test/([0-9]+)/([0-9a-zA-Z_-]+) test.php?album_id=$1&naam=$2 [NC] 

如果我去test/1/test,我得到了我想要的:

ID: 1 
Naam: test 

所以我知道改寫作品。

爲album.php的代碼可以發現here

任何想法是什麼原因造成的造型不加載,圖像無法正常加載?

回答

0

這聽起來像是你的樣式表和圖像使用相對路徑。

如果使用例如images/album.jpg爲你的形象,它會尋找:

http://www.yoursite.com/images/album.jpg 

當你直接加載index.php

然而,它會尋找:

http://www.yoursite.com/album/1/test/images/album.jpg 

與地方你重寫規則。

一個簡單的方法是始終使用絕對路徑,相對於WEB服務器的根目錄,如:

/images/image.jpg 
/styles/styles.css 

注意在開始斜線/

+0

謝謝,這確實是路徑問題。我已經有一個'$ root'變量用於菜單,所以我只是用它來指向圖像和CSS的正確路徑。問題解決了。 – Alex

相關問題