2011-08-22 51 views
0

我試圖獲取使網站更漂亮的URL。我添加了一個前端控制器,它獲取URL 這裏是代碼的.htaccess文件和控制器使用HTACCESS文件獲取內容的PHP前端控制器

RewriteEngine on 
RewriteCond $1 !^(index\.php|search\.php|lib|css|ajax|includes|js|classes|parts|pages|images|robots\.txt) 
RewriteRule ^(.*)$ index.php/$1 [L] 

控制器文件

$URL = $_SERVER["REQUEST_URI"]; 

$all_parts = explode("/", $URL); 

我的網址是一樣的東西

www.example.com/pretty-ulr/10.html 

我得到的頁面編號是page.php?p_id=10(這是一個簡單的例子,我使用的是更復雜的例子。)

但我不確定如何獲取這裏的內容或重定向t0 page.php?p_id = 10以獲得顯示此頁內容。當我使用header()重定向時,它不會到達

可能在.htaccess文件中很小,但我不確定。任何想法請如何獲取頁面內容。

+0

如果您使用的是前端控制器,爲什麼不使用*它來加載請求的頁面,而不是使用'.htaccess'來完成這一切?只需將不是物理文件的*一切*發送到'index.php'並讓您的應用程序完成這項工作。 – adlawson

+0

前端控制器不僅僅是一個具有上述代碼的簡單文件,僅用於檢查URL。我沒有使用任何MVC。使用.htaccess發送請求給控制器,然後從那裏檢查。 – kakaajee

回答

0

我建議使用這樣的事情在.htaccess

RedirectMatch ^/$ /index.php 

然後在PHP做:

$url=parse_url($_SERVER['REQUEST_URI']); 
$urls=explode('/',rawurldecode(trim($url["path"],'/'))); 
new Controller($urls); 

Controller將解析URL,並得到正確的觀點。

+0

前端控制器不僅僅是一個具有上述代碼的簡單文件,僅用於檢查URL。我沒有使用任何MVC。使用.htaccess向控制器發送請求,然後從那裏檢查URL是什麼。 – kakaajee