我想从带有参数的codeigniter URL中删除索引

时间:2016-06-27 06:43:26

标签: php codeigniter

我想从带有参数的codeigniter URL中删除索引。它不是index.php而是控制器内的索引函数。目前我的网址如下所示 www.example.com/app1/index/param1/param2

这里我想从url中删除索引,以便URL为

 www.example.com/app1/param1/param2

如果我现在这样做,它会显示我的错误为404可能是因为它为app1控制器内部的函数param1选择了

4 个答案:

答案 0 :(得分:2)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

试试这个.htaccess

如果此代码不起作用,请转到application / config / config.php

//  Find the below code
$config['index_page'] = "index.php"
//  Remove index.php
$config['index_page'] = "" 
//and 
//  Find the below code
$config['uri_protocol'] = "AUTO"
//  Replace it as
$config['uri_protocol'] = "REQUEST_URI" 

我希望它会有所帮助

答案 1 :(得分:1)

嘿,请执行以下步骤,

application / config / config.php

$config['index_page'] = "index.php" to $config['index_page'] = ""

根文件夹创建.htaccess文件 注意:确保创建.htaccess文件而不是文本文件。

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

如需处理.htaccess文件,请在此处下载http://wikisend.com/download/862912/.htaccess

注意:在某些情况下,uri_protocol的默认设置无法正常工作。只需替换

$config['uri_protocol'] ="AUTO" to $config['uri_protocol'] = "REQUEST_URI"

来到路线:

Codeigniter支持两种类型的路由 我)通配符 ii)正则表达式

我给你通配符示例请检查下面:

application/config/routes.php放置此行

$route['/app1/index/(:num)/(:num)'] = "/app1/$1/$1";

有关详细信息,请参阅官方文档http://www.codeigniter.com/userguide3/general/routing.html

答案 2 :(得分:0)

如上面的网址,您的控制器如下所示:

<?php
class App1 extends CI_Controller
{
  public function __construct()
  {
    parent::__construct();
  }

  public function index($param1, $param2)
  {
    // ...your code here
  }
}

尝试再次更改控制器,这样就不必将index用作功能。

<?php
class Apps extends CI_Controller
{
  public function __construct()
  {
    parent::__construct();
  }

 public function app1($param1, $param2)
 {
   // ... your code here
 }

答案 3 :(得分:0)

尝试一下:

中添加路线
application/config/routes.php

用于 $route['app1/(:any)/(:any)'] = "app1/index/$1/$2";
App1 class