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


Using .htaccess file to remove a particular segment of the URL

我的url链接看起来像:

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
一种方法是在application/config/routes.php文件中创建一个自定义路由,用于路由urlhttp://localhost/CodeIgniter_2.1.2/home"到"http://localhost/CodeIgniter_2.1.2/pages/home'

此处介绍了自定义路由

代码看起来像:

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

编辑

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

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

还有:

**保留路线**来自代码点火器文档:

有两条预定路线:

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

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

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

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

尝试更改规则,使目标为:

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