我正在使用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';
尽管它产生了:
而不是:
答案 0 :(得分:0)
您正在使用不会更改网址的路由,只会将网址路由到特定控制器:
$route['add-quiz'] = 'main/add_quiz/';
你唯一要做的就是告诉CI指导网址:" 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>
然后,所有对&{39; main/add_quiz
&#39;的请求将更改为&#39; main/add-quiz
&#39;。如果您的控制器被调用:&#39; add_quiz
&#39;你应该保留你的route.php。
也许您应该将.htaccess文件调整到本地/远程项目,并进行一些更改以使其正常工作。
希望它有所帮助!
答案 1 :(得分:0)
$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 answer