2010-10-14 55 views
2

我從頭開始構建一個動態網站,因此我是新手。如何組織您的網站,以便.htaccess能夠工作

我需要匹配這個網址:

www.domain.org/world/2.html 

與此:

www.domain.org/index.php?html=world&rss=2 

爲此我使用這個重寫規則:

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?html=$1&rss=$2 [L] 

這應該是工作,但它不是!

如果我寫:

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?html=$1&rss=$2 [R] 

網站重定向我正確的URL,一切工作正常。

但是,當我再次將修飾符[R]更改爲[L]時,我收到一個非常奇怪的頁面。它和我需要的一樣,但是css文件沒有加載。因此,內部URL與我所需要的不完全相同。當我回顯$_GET[html]$_GET[rss]變量時,它們也是正確的。此外,當我從鏈接www.domain.org/world/2.html去從菜單中另一個鏈接,它的建立是這樣的: www.domain.org/world/2.html/environment.html,而不是www.domain.org/environment.html

所以,我想這個問題是我的網站的組織。 .htacces在一個目錄中。模板和css文件位於另一個目錄中,處理不同頁面的.php文件位於不同的目錄中。但再一次

www.domain.org/index.php?html=world&rss=2 

完美的作品! .htaccess可能導致我的目錄出錯,但我不知道如何解決它。

所以我真的很困惑問題在哪裏?請,如果有人有線索,我會非常感激聽到它。

謝謝你的時間和考慮。

回答

0

但是,當我再次將修飾符[R]更改爲[L]時,我收到一個非常奇怪的頁面。它和我需要的一樣,但是css文件沒有加載。

我想你使用相對URI來引用樣式表。就像這樣:

<link rel='stylesheet' href='../screen.css'> 

由於瀏覽器認爲這是它在錯誤的目錄搜索目錄/world/

解決方案:使用絕對路徑,開始與/

<link rel='stylesheet' href='/screen.css'> 
<a href='/about/'>About us</a> 
相關問題