从URL中删除一些目录并将视图附加到默认控制器

时间:2017-01-24 09:53:54

标签: php codeigniter-3

我有一个项目,当我加载它将成功加载此URL。

http://localhost:8080/ci/CodeIgniter-3.0.1

但是当我想转到另一个视图EX到这个视图时:

http://localhost:8080/ci/CodeIgniter-3.0.1/about

它将显示404错误消息。

但是当我转到这个网址时,它会成功加载。

http://localhost:8080/ci/CodeIgniter-3.0.1/index.php/pages/about

我想从url中删除index.php和页面我该怎么办?

2 个答案:

答案 0 :(得分:1)

从您的网址中删除index.php永久使用此.htaccess文件 在主索引所在的位置创建一个带有.htaccess扩展名的文件,并将此代码粘贴到文件中。

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php index.html
RewriteEngine on
RewriteCond $1 !^(index\.php|img|css|js|install|robots\.txt|favicon\.ico|update\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

从网址中删除 pages / about ,只需打开applicaiton / config文件夹下的route.php并添加此行

$route['put_default_controller_name_here'] = 'pages/about';

答案 1 :(得分:0)

application / config 文件夹中修改 config.php ,设置一些属性的值如下:

 $config['index_page'] = '’;
$config['uri_protocol'] = 'REQUEST_URI';

和创建/编辑.htaccess文件,它与您的应用程序文件夹不在内部,并在下面写下代码:

    RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

上面你已经从你的网址中删除了index.php。

现在要删除控制器名称,在您的情况下,要从您的网址中删除网页,您必须将路由更改为以下代码:

$route['default_controller'] = 'users';
$route['^(:any)(/:any)?$'] = "users/$0";

现在,您只能通过函数名称直接设置路径: 例如:

redirect('about');

而不是:

redirect(pages/about);