CodeIgniter - 重写网址

时间:2012-01-08 17:48:51

标签: codeigniter url-rewriting

有许多教程讨论从url中删除index.php。但我想向前迈进一步。

链接是:www.example.com/index.php/controller/function/single-variable 我希望它像:www.example.com/some-name-that-i-put/single-variable

我找不到做这样的事情的教程。怎么做?

4 个答案:

答案 0 :(得分:3)

我不确定你是否想要直接URL重写CI如何开箱即用......但这就是你重写URL的方法:

您的班级/功能/身份example.com/news/article/13转置为:example.com/class/function/ID

http://codeigniter.com/user_guide/general/urls.html

你可以通过做两件事来设置它: 在application / config /下的config.php文件中编辑:

approx line 80: $config['uri_protocol'] = 'REQUEST_URI'; // i set this to request_URI as it always works for me..
approx line 93: $config['url_suffix'] = '.html'; // this is optional, if you want /13.html
approx line 62: $config['index_page'] = ''; //set this to blank

在http root中创建一个.htaccess:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

这是URI路由更改的方法

如果要更改URI的组织,可以使用routes.php中定义的URI路由,如下所述:http://codeigniter.com/user_guide/general/routing.html

答案 1 :(得分:1)

答案 2 :(得分:1)

答案 3 :(得分:0)

试试这个 在您的配置文件中放置这些

     $config['uri_protocol']    = 'AUTO';
     $config['url_suffix'] = '';
     $config['index_page'] = '';
     $config['allow_get_array'] = TRUE;
     $config['enable_query_strings'] = FALSE;

之后在你的根目录下创建一个.htaccess文件并把它放到

  

RewriteEngine On

     

RewriteCond%{REQUEST_FILENAME}!-f

     

RewriteCond%{REQUEST_FILENAME}!-d

     

RewriteRule ^(。*)$ index.php / $ 1 [L]

这将绝对帮助你