2016-04-14 52 views
1

我正在嘗試重定向動態創建的頁面。如何在不重定向的情況下重寫url(刪除2個文件夾和1個獲取參數)?

我的MVC模式,逼我有這樣的URL:
本地主機/頁/ PAGE_ID ID = 1
本地主機:網站網址
頁:控制器
PAGE_ID:動作
ID = 1:參數

我想有這樣的URL:
本地主機/ 1
換句話說,刪除除「ID」參數的值的一切。 我該怎麼做?

我已經嘗試了一些代碼,但它每次都重定向我。

我目前的htaccess(根目錄):

Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^page/(.*)$ /$1 [L,R=301] 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^.*$ /index.php [L] 

我在那裏着陸當我鍵入http://localhost/page/page_id?id=1
http://localhost/page_id/id=1 出現錯誤: 「控制器不存在」,網址原因被重定向。

我錯過了什麼?

在此先感謝!

+0

難道還有比'page'或大於'page_id'其他任何行動以外的任何控制器? – anubhava

+0

當然,我有一些我正在使用的控制器。我只需要這個特定的URL的重寫URL – hardworker

回答

1

您可以嘗試以下規則:

Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^(\d+)/?$ page/page_id?id=$1 [L,QSA] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule . index.php [L] 
+0

URL不會改變...我已經激活了Apache重寫模塊,所以我不明白爲什麼... – hardworker

+0

好吧,我不明白,...謝謝,並回答你當我進入'localhost/page/page_id?id = 1'它仍然有效,但是當我輸入'localhost/1'我仍然有一個「控制器未找到錯誤」,因爲我的index.php總是認爲第一個參數在url中是控制器。 – hardworker

+0

ok'「controller not found error'實際上是你的'index.php'問題。在'index.php'代碼裏面使用**'uri = $ _SERVER [」REDIRECT_URL「]。'?'來形成實際的路由器URI。 。$ _SERVER [「QUERY_STRING」];'** – anubhava

相關問題