2011-08-22 57 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