使用.htaccess文件删除URL的特定段

时间:2012-08-22 01:38:13

标签: php .htaccess codeigniter

我的网址链接如下:

http://localhost/CodeIgniter_2.1.2/index.php/pages/home

然后我使用谷歌编写了.htaccess文件,如下所示:

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

现在我的链接如下:

http://localhost/CodeIgniter_2.1.2/pages/home

现在,我想从此链接中删除pages。任何人都可以帮我解决这个问题吗?

所以,我的网址可能如下:

http://localhost/CodeIgniter_2.1.2/home

2 个答案:

答案 0 :(得分:1)

一种方法是在application / config / routes.php文件中创建一个自定义路由,该文件将URL“http://localhost/CodeIgniter_2.1.2/home”路由到'http:// localhost / CodeIgniter_2.1.2 /页/家“

自定义路由描述为here

代码看起来像:

$route['home'] = "pages/home";

编辑

您的控制器,方法和变量分别命名为“pages”,“view”和“home”。因此,您应该尝试以下路线:

$route['home'] = "pages/view/home";

此外:

**预留路线** 来自codeigniter文档:

有两条保留路线:

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

如果URI不包含数据,则此路由指示应加载哪个控制器类,这是人们加载根URL时的情况。在上面的示例中,将加载“welcome”类。我们鼓励您始终使用默认路由,否则默认情况下会显示404页面。

因此,您不应将默认控制器设置为“pages / view / home”。相反,您应该在控制器中创建一个默认为“主页”视图的“索引”方法。

同时 不要忘记在application / config / config.php中的config.php文件中将$ config ['index_page']从'index.php'更改为''。

答案 1 :(得分:0)

尝试更改规则,以便目标为:

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