簡體   English   中英

為什么在Codeigniter中使用路由無法生成SEO友好URL?

[英]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';

即使它生成:

HTTP://本地主機/應用程序的名字/主/ add_quiz

代替:

HTTP://本地主機/應用程序的名字/主/加知多少

您使用的路由不會更改網址,只會在執行以下操作時將網址路由到特定控制器:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM