[英]Why generating SEO friendly URL is not working using routes in Codeigniter?
我正在使用Codeigniter開發應用程序,並且嘗試生成SEO友好的URL,但沒有任何工作正常。
我在routes
文件中嘗試了以下代碼:
$route['default_controller'] = "main";
$route['404_override'] = '';
$route['add-quiz'] = 'main/add_quiz/';
$route['category-wise-questions/(:any)'] = 'category_wise_questions/$1';
即使它生成:
代替:
您使用的路由不會更改網址,只會在執行以下操作時將網址路由到特定控制器:
$route['add-quiz'] = 'main/add_quiz/';
您唯一要做的就是告訴CI將URL:“ add_quiz”定向到控制器“ add-quiz”(而不是“ add_quiz”)。
為了使其正常工作,您需要在.htaccess中添加一行,例如:
RewriteRule /main/add-quiz /main/add_quiz [L]
結果如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] #remove index.php
RewriteRule /main/add-quiz /main/add_quiz [L]
</IfModule>
然后,所有對“ main/add_quiz
”的請求main/add_quiz
改為“ main/add-quiz
”。 如果您的控制器名為:' add_quiz
',則應保留route.php。
也許您應該對.htaccess文件進行調整以使其適合本地/遠程項目,以使其起作用。
希望能幫助到你!
$route['main/add-quiz'] ='main/add_quiz/';
應該管用。
我已經嘗試過類似的東西:
$route['mumbai/piles-doctor'] = 'mumbai/piles_doctor';
效果很好。
無需更新.htaccess。
還要確保translate_uri_dashes
設置為其默認值“ False”。 $route['translate_uri_dashes'] = FALSE
;
雖然其他人可以在這里是指一個更好的解決方案StackOverflow的答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.