2010-04-27 148 views
0

我是一個新的PHP網站,只熟悉.net網站形式的網站。php網站的網址匹配問題

我無法弄清楚如何路由在這個PHP網站上工作。

www.oursite.com/suggestions.php是suggestions.php
www.oursite.com/suggestions還加載了PHP的罰款
www.oursite.com/suggestions/加載PHP,但沒有CSS是應用
www.oursite.com/suggestions/anything - 忽略「/」後的任何內容,並且在沒有css的情況下加載建議。所以oursite.com/suggestions//////的作品,就像oursite.com/suggestions/2/2/2/2/whatever

我已經搜索,但沒有找到任何關於這是如何工作的好解釋。有人可以解釋或提供一個好的資源嗎?

謝謝。

回答

2

這當然是使用Mod_Rewrite(Apache擴展)完成的。您可能會在公共根目錄中找到一個名爲.htaccess的文件,其中定義了這些重寫規則。

1

DouweM對友好的網站來說是正確的答案。

至於CSS的,很可能是因爲您使用相對URL在你的鏈接標籤:

<link rel="stylesheet" href="site.css"/> 

改變那些絕對URL,它應該解決這個問題:

<link rel="stylesheet" href="/site.css"/> 

的原因是瀏覽器根據其認爲的目錄對CSS進行請求,即使您的URL重寫正在改變它。所以,如果網址是http://mysite.com/suggestions/並且您使用的是相關網址,那麼瀏覽器將會請求將css作爲http://mysite.com/suggestions/site.css,這當然不存在。

0
www.oursite.com/suggestions.php is to suggestions.php 
www.oursite.com/suggestions also loads the php fine 

你可能有一個.htaccess文件首先檢查是否該名稱的文件存在,如果它確實提供它,那麼,如果沒有,嘗試將其路由到一個PHP腳本。

www.oursite.com/suggestions/ loads the php, but no css is applied 

/意味着瀏覽器認爲 '​​3210' 的目錄。如果suggestions.php將包含相對<link>的HTML輸出到樣式表(例如, <link href="style.css">,您的瀏覽器將請求www.oursite.com/suggestions/style.css,而不是前面兩種情況下的www.oursite.com/style.css

www.oursite.com/suggestions/anything 

同前面的情況下,您的瀏覽器將請求錯誤css文件,因爲它認爲「​​3210」的目錄。 (對於一個潛在的修復,看看Eric Petroelje的答案。)

因爲DouweM說,但你最好的選擇是直接看你的.htaccess文件,並找出它的作用。