2015-12-17 212 views
1

我想建立一個custom PHP MVC framework,我想要做以下使用.htaccess重寫多的.htaccess重寫規則

localhost/mvc/page1 OR localhost/mvc/page1/
對此
localhost/mvc/index/view/page1

localhost/mvc/bloglocalhost/mvc/blog/
對此
localhost/mvc/blog/index

localhost/mvc/blog/blog1 OR localhost/mvc/blog/blog1/
對此
localhost/mvc/blog/view/blog1

這裏indexblog是控制器

下面是我到目前爲止已經試過

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php?rt=index/view/$1 [L,QSA] 

這重定向localhost/mvc/page1localhost/mvc/index/view/page1

所以基本上,我希望有不同的控制器不同重寫條件。所以當我將添加一個新的控制器時,我會繼續向htaccess文件添加條件。

這是重定向背後的代碼(URL不應該改變)。並且localhost/mvc/後面的所有內容都應該反映在GET $_GET['rt']參數中

如何實現這個?

回答

2

有這樣說:

RewriteEngine on 
RewriteBase /mvc/ 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule ^(blog)/?$ index.php?rt=$1/index [L,NC,QSA] 

RewriteRule ^(blog)/([^/]+)/?$ index.php?rt=$1/view/$2 [L,NC,QSA] 

RewriteRule ^(.+)$ index.php?rt=index/view/$1 [L,QSA] 
+1

非常感謝..這工作:) ..所以每當我想添加一個新的控制器,我有一個默認指數統治權之前增加重定向規則? ? –

+1

是的,最後的規則是全部控制器。 – anubhava

+0

只是爲了好奇心..如果我有'localhost/mvc/blog/blog1/edit'到'localhost/mvc/blog/view/blog1/edit'這樣的東西,如何重定向 –