隐藏或使用的搜索引擎优化的目的航线URL删除控制器名称= codeigniter目的、航线、控制器、搜索引擎优化

2023-09-02 11:40:35 作者:且歌且行

我使用一个控制器。如何删除或隐藏使用路线我的网址控制器的名字吗? 我已经把我的.htaccess删除我的index.php。我试过很多其他类似的问题code,但我没有运气。我不知道如果我有我的活的服务器上的一个问题,因为在我的previous项目,我用这个code

I am using one controller. How can I remove or hide the controller name on my URL using routes? I already set my .htaccess to remove my index.php. I've tried lots of code from other similar questions but I don't have luck. I don't know If I have a problem on my live server because on my previous project I used this code

$route['del/(:any)'] = "my_cotroller";
$route['(:any)'] = 'pages/view/$1';

和这工作完全正常,但是当我试图用我的当前项目没有奏效。 这是我的默认路由

and this works perfectly fine but when I tried to use it on my current project it didn't work. This is my default route

$route['default_controller'] = "my_cotroller";
$route['404_override'] = '';

我要存档如 http://www.sample.com/login 但我的一个网址当前路径code给我这个 http://www.sample.com/my_controller/login。

I want to archive a URL like http://www.sample.com/login but my current route code gives me this http://www.sample.com/my_controller/login.

感谢的求助。

推荐答案

简单的方法,当我使用CI:

Simple approach when i use CI:

例如控制器:

<?php
class Haha extends CI_Controller
{
    public function check()
    {           
        $this->load->view('path/to/check/view');
    }

    public function choke()
    {
        $this->load->view('path/to/choke/view');
    }
}

例如路线:

//same name with C method
$route['check'] = 'haha/check';
$route['choke/(:any)'] = 'haha/choke';

//or custom route name
$route['squirrel'] = 'haha/check';
$route['woohoo/(:any)'] = 'haha/choke';

我的htaccess的:

My htaccess:

RewriteEngine on
RewriteCond $1 !^(index.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]

访问网址:

http://yoursite.com/check
http://yoursite.com/choke/whatever

//or

http://yoursite.com/squirrel
http://yoursite.com/woohoo/whatever

增加: 下面是从我的老项目中使用CI完整的路线,也许你可以得到的东西。

Addition: Here is complete routes from my old project using CI, maybe you can get something.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['default_controller'] = 'sitehome';

$route['page'] = 'sitehome/page';
$route['page/who-we-are'] = 'site/whoweare';
$route['page/why-use-us'] = 'site/whyus';
$route['page/about-us'] = 'site/about';
$route['page/contact-us'] = 'site/contact';
$route['page/news'] = 'site/news/news';
$route['page/topics'] = 'site/topic';
$route['page/polls'] = 'site/polls';
$route['page/results'] = 'site/result';
$route['agent/detail/(:any)'] = 'site/agentdetail';
$route['register'] = 'site/register';
$route['login'] = 'site/login';

$route['user/home'] = 'usermain';
$route['user/edit-account'] = 'user/editaccount';
$route['user/retire'] = 'user/retired';
$route['user/business/data'] = 'user/business';
$route['user/business/topic/create'] = 'user/topic/topiccreate';
$route['user/business/topic/view'] = 'user/topic/topicview';
$route['user/business/topic/edit/(:num)'] = 'user/topic/topicedit';
$route['user/inbox'] = 'user/inbox';
$route['user/message/read/(:any)'] = 'user/readmessage';
$route['user/provider/list'] = 'user/providerlist';
$route['user/provider/send-message/(:any)'] = 'user/providerlist/sendmessage';
$route['user/notification'] = 'user/notified';
$route['user/inquiry'] = 'user/inquiry';

//testing purpose
$route['percobaan'] = 'coba/percobaan';

$route['poll'] = 'site/polls/retrievePoll';

//serve response
$route['response/single-poll'] = 'api/ResponseData/serveHomePoll';
$route['response/multi-poll'] = 'api/ResponseData/servePoll';

$route['404_override'] = 'notFound';
$route['translate_uri_dashes'] = FALSE;

/* End of file routes.php */
/* Location: ./application/config/routes.php */

注:

http://example.com/business/ 将失败或不存在。

祝你好运。