【问题标题】:How to remove class name and controller name from url in codeigniter?如何从codeigniter中的url中删除类名和控制器名?
【发布时间】:2016-07-01 00:07:32
【问题描述】:

我正在使用 CI 开发一个网站,今天我遇到了一个问题。 这是我的链接。

http://example.com/subfolder/site/page/Snowman_Trek_24_Days

我想更改我的链接

http://example.com/subfolder/Snowman_Trek_24_Days

我更新了我的配置文件 -

$config['uri_protocol'] = 'QUERY_STRING';
$config['enable_query_strings'] = TRUE;

我也测试了这个 -

$config['uri_protocol'] = 'PATH_INFO';
$config['enable_query_strings'] = TRUE;

在 route.php 文件中我使用了这段代码 -

$route['default_controller'] = 'site';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['page/(:any)'] = "site/page/$1";

我的 htaccess 代码是:-

RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

做完这一切后,我得到了这个错误:- 无法确定应该显示什么。路由文件中没有指定默认路由。谁能帮帮我。

【问题讨论】:

  • 路线的顺序很重要...default_controller 永远不应位于顶部,因为它会覆盖其他所有内容...default_controller 位于底部。通过注释掉路线并一次添加一条路线来解决问题。

标签: php .htaccess codeigniter routing


【解决方案1】:

试试这个:在你的 .htaccess 文件中放置

RewriteEngine On
RewriteBase /subfolder/# is this subfolder from URL we are speaking about?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^subfolder/(.*)$ index.php?/subfolder/$1 [QSA,L]

现在您的所有请求都应避免 URL 中的子文件夹段。 但是您还必须在 APPPATH.'config/config.php' 文件和控制器中设计 URL:

$route['(:any)'] = "site/page/$1";

所以

http://example.com/subfolder/Snowman_Trek_24_Days

应该是有效的路径。 请注意(:any) 通配符,因为它将重新路由任何其他请求,而不仅仅是site/page/$1,并且必须位于routes.php 文件的末尾。您想要执行的任何其他路线,您必须明确地放在该路线之前。示例:

$route['login'] = 'auth/login';

$route['about'] = 'staticpage/about';
$route['contact'] = 'staticpage/contact';

$route['(:any)'] = "site/page/$1";

docs 中的更多路由。

【讨论】:

  • 好的,谢谢你让我试试。先生,我会尽快更新您。
  • " 但是您还必须在 APPPATH.'config/config.php' 文件和控制器中设计 URL:" 先生,我不明白我该怎么办?
  • $config['base_url'] = 'http:domainname/subfolder/';这是我的基本网址。
  • 抱歉,我指的是路由,而不是配置。对于更改控制器代码,我的意思是,如果您在代码更改后使用$this->uri->segment(4)(如果仍然有效),现在它将变为$this->uri->segment(2)等。
猜你喜欢
  • 1970-01-01
  • 2016-11-02
  • 2011-11-28
  • 1970-01-01
  • 2011-08-04
  • 2018-01-10
  • 2016-03-25
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多