2011-12-06 55 views
0

有沒有辦法在設置我的網站時在標籤中插入相關URLS到php代碼,如/forums/(forumID)/?然後,當我試圖獲取當前頁面的哪個forumID時,通過$_GET請求獲取它,而不使用像Smarty,CakePHP等模板系統或Apache重寫模塊?或者這是一個非常頭痛的問題?我只是想能夠不被綁定到一個Web服務器類型(Apache)。使乾淨的URL和檢索查詢字符串

+1

所以你擔心綁定到web服務器,但不用擔心綁定到使用的編程語言?這不奇怪嗎?;-) – zerkms

+0

我不知道Smarty會如何考慮這一點,但你需要設置Apache,Nginx或類似的URL來處理 – adlawson

+0

@zerkms嗯,我說這是B/C的原因我主要是建立類現在可以用於我建立的幾乎任何網站。所以如果有人想要我建立一個網站,但他們已經有了一定的設置等,但只想添加一個網站,但他們不使用Apache,那麼我仍然很好去。 – vol4life27

回答

2

...從OP的意見進行的。

這些框架以各自的語言再次讀取請求,以允許框架路由到特定的控制器,但他們仍然需要設置Web服務器以首先將請求發送到框架。

  • 客戶端請求http://example.com/forums/123
  • DNS查找之後,請求命中服務器在127.0.0.1:80
  • 網絡服務器(例如Apache)的監聽端口80和接受請求
  • 阿帕奇路由請求到服務器端腳本

這是Web服務器看到它的過程。在它碰到服務器端腳本語言(PHP/Python/Ruby等)之前,它需要讀取請求。

服務器端語言可以在Web服務器按照他們的要求點擊前端控制器後重新讀取URL。

+0

謝謝你們的提示。就像我說的,我肯定是服務器設置等方面的新手,以及數據如何傳輸。我只是想在PHP中創建一些通用類,我可以在大學時用它來構建網站以獲得額外的錢。感謝您爲我清除這個每個人! :) – vol4life27

4

清潔網站很容易做到,但是如果網頁大不相同,可能會導致一些問題。

你需要編輯.htaccess文件,並添加類似這種

RewriteEngine On 

RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 
#This will process http://example.com/forum as http://example.com/index.php?page=forum 

RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1 
#This includes the trailing slash 

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?page=$1&id=$2 
#This will process http://example.com/forum/512 as http://example.com/index.php?page=forum&id=512 

這是一個很好的來源獲取更多信息http://www.desiquintans.com/cleanurls

+0

他不希望它綁定到服務器設置,所以這是不行的。 –

1

的主要原因有乾淨的網址,從一個角度架構上看:

  • 它們不依賴於任何編程語言。如果您有.php或任何其他擴展程序,如果切換到ASP.net,則必須將服務器設置爲接受其他語言的.php擴展名。
  • 它們很容易在任何語言或服務器設置路由。我知道的所有現代服務器都有模塊來路由URL。

請注意,要使用編程語言來路由URL,您仍然必須設置服務器以將所有內容都指向引導文件。老實說,無論如何,你都無法繞過某種服務器配置。

結論:如果您沒有執行某些服務器設置,您希望以此方式設置項目的邏輯將無法正常工作。