2012-09-05 78 views
0

我有一個名爲控制器:main_controller 在我的應用程序的所有鏈接是指它的URL,如:/main_controller/...笨htaccess以及路由在URL的搜索引擎優化控制器名稱

現在我要插入一些SEO在所有這一切,改變url到更多的搜索引擎優化一個像/seo_name_for_controller/...

,而不是進行全手動搜索&替換爲這可能是錯誤的來源所有出現,我希望我能有什麼做到這一點使用htaccess的如:

RewriteRule ^/main_controller/(.*)$ /seo_name_for_controller/$1 [L,R=301] 

然後使用routes.php文件來完成類似的過程:

$route['seo_name_for_controller/(:any)'] = "main_controller/$1"; 

是否有可能還是會導致無限循環?有人有這樣的代碼示例嗎?

+2

單獨的'$ route'聲明應該足以讓它工作 - 不需要在'.htaccess'文件中添加內容。 – Mudshark

回答

1

它不應該引起問題。 CI路由在技術上不是重定向,它只是使用URI模式來調用特定的控制器。這應該工作。

你試過看看會發生什麼嗎?你的問題表明沒有審判。

0

thanx您的回覆,我也跟着你的意見,我試圖與確認:

的htaccess:

RewriteRule ^main_controller/(.*)$ seo_controller/$1 [L,R=301] 

routes.php文件

$route['seo_controller/(:any)'] = "main_controller/$1"; 

頁內的網址是:

http://local.com/main_controller 

當點擊它的工作原理和重定向後+路由,在結束:

http://local.com/seo_controller 

但我很傷心它不是「完全看不見」。

,因爲它在重定向之前首先在地址欄中使用「普通網址」(/ main_controller /)。 它最終工作並執行/ main_controller/actions,而最後一個URL是/ seo_controller /。

但它不是真的令人滿意,我會有一個完全無形的重定向。所以我想我正在手動搜索和替換的方式;)然後只使用路由。