首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否删除index.php?来自带问号的URL | Codeigniter

|

在Codeigniter框架中,index.php是默认的入口文件,用于处理URL请求。然而,有时候我们希望在URL中去掉index.php,使得URL更加简洁美观。而带问号的URL则是指在URL中包含问号(?)的情况。

在Codeigniter中,可以通过配置文件和.htaccess文件来实现删除index.php和处理带问号的URL。

首先,需要确保Apache服务器开启了mod_rewrite模块。然后,在Codeigniter的配置文件config.php中,找到以下代码:

代码语言:txt
复制
$config['index_page'] = 'index.php';

将其修改为:

代码语言:txt
复制
$config['index_page'] = '';

这样就可以删除URL中的index.php。

接下来,需要创建一个.htaccess文件,并将其放置在Codeigniter的根目录下。在.htaccess文件中,添加以下代码:

代码语言:txt
复制
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

这样就可以处理带问号的URL。例如,原始URL为:

代码语言:txt
复制
http://example.com/index.php/controller/method?id=123

经过配置后,可以使用以下URL访问相同的页面:

代码语言:txt
复制
http://example.com/controller/method?id=123

这样就实现了删除index.php和处理带问号的URL。

Codeigniter相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库MySQL版(CDB):https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云内容分发网络(CDN):https://cloud.tencent.com/product/cdn
  • 腾讯云域名注册:https://cloud.tencent.com/product/domain
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

故障排除和本地开发服务器

我必须在我URL中包含index.php 如果``/mypage/find/apple``类似的URL``/index.php/mypage/find/apple``不起作用,但类似的URL ,则你...仅加载默认页面 如果你发现无论你在URL中放入什么内容,只会加载默认页面,可能是你服务器不支持提供搜索引擎友好URL所需REQUEST_URI变量。...如果在你尝试此操作后仍然无效,则需要强制CodeIgniter向你网址添加问号。...; 该教程给出了404错误:( 你无法使用PHP内置Web服务器学习本教程。它不处理正确路由请求所需`.htaccess`文件。 解决方案:使用Apache为你站点提供服务。...如果你在你开发机器上安装了 PHP,你可以使用 serve 指令启动 PHP 内置服务器,完全安装并用于运行你 CodeIgniter 应用程序。

3.9K10

讲解-加载静态页

如果不存在,会显示 "404 Page not found" 错误页面。 此事例方法中,第一行用以检查界面是否存在,file_exists() 是原生 PHP 函数,用于检查某个文件是否存在。...在你浏览器中输入 [your-site-url]index.php/pages/view 查看你页面。...打开路由文件 application/Config/Routes.php 然后添加如下两行代码,并删除掉其它对 $route 数组赋值代码。...当获取到请求时,CodeIgniter 首先查找能匹配到第一条规则,然后调用相应可能存在参数控制器和方法。 你可以在关于 URL路由文档 中找到更多信息。...路由事例第二条规则 $routes 数组中使用了通配符 (:any) 匹配所有的请求,然后将参数传递给 Pages 类 view() 方法。

3.5K10

-控制器

考虑下面的 URI: example.com/index.php/blog/ 上例中,CodeIgniter 将会尝试查询一个名为 Blog.php 控制器并加载它。...现在使用类似下面的 URL 来访问你站点:: example.com/index.php/blog 如果一切正常,你将看到:: Hello World! 重要 类名必须以大写字母开头。...; } } 现在,通过下面的 URL 调用 comments 方法: example.com/index.php/blog/comments/ 你应该能看到你新消息了。...CodeIgniter 允许你使用 _remap() 方法重写该规则: public function _remap() { // Some code here... } 重要 如果你控制包含一个...应该像下面这样: example.com/index.php/products/shoes/show/123 每个子目录包含一个默认控制器,将在 URL 只包含子目录时候被调用。

3.6K20

-CodeIgniter URL

CodeIgniter URL 在默认情况下,CodeIgniter URL 被设计成对搜索引擎和用户友好样式。...不同于使用传统在动态系统中使用代词标准 “查询字符串” 方式,CodeIgniter 使用基于段方法: example.com/news/article/my_article URI 分段 如果遵循模型...移除 index.php 文件 默认情况,你 URL 中会包含 index.php 文件: example.com/index.php/news/article/my_article 如果你服务器支持重写...当开启时,我们可以使用一个 .htaccess 文件以及一些简单规则实现 URL 重写。...$uri/ /index.php/$args; } 服务器将会首先寻找符合对应 URI 文件或目录(对于每个文件,通过根目录和别名目录构建其完整路径),然后再将其他请求发送至 index.php

2.3K20

讲解-启动流程

来自CodeIgniter中国介绍 CodeIgniter 是一个轻量级、快速、灵活和安全PHP全栈Web框架。...CodeIgniter4 是一个完整重写,将质量和代码带入一个更现代版本,同时仍然保持着许多完整东西来自CodeIgniter4 Github介绍 CodeIgniter4 启动流程分析...\CodeIgniter进行初始化并返回 调用CodeIgniter\CodeIgniter->run()执行主流程并返回响应结果 入口文件 - public\index.php 检测 PHP....php 根据CI_DEBUG标志加载调试类库Kint 返回CI类 执行主流程 - CI->run() 开始基准测试 获取CodeIgniter\HTTP\Request对象 获取CodeIgniter....php 根据CI_DEBUG标志加载调试类库Kint 返回CI类 执行主流程 - CI->run() 开始基准测试 获取CodeIgniter\HTTP\Request对象 获取CodeIgniter

2.4K10

系列开篇

最新中文手册 https://codeigniter-chinese.github.io/codeigniter4-user-guide/index.html CodeIgniter4与以往版本有大变更...composer create-project codeigniter4/framework 运行 将 CodeIgniter 文件夹和文件上传到你服务器上。 ...index.php 文件将会在你项目根目录 public 文件夹里。 使用文本编辑器打开 application/Config/App.php 文件设置你基本 URL。...如果你这样做,记住最好打开你index.php 文件并将 $system_path,$application_folder 和 $view_folder 变量设置为全路径,例如:/www/MyUser...在生产环境中所要做一个额外操作是禁用 PHP 错误报告以及其它任何仅开发时所使用功能。在 CodeIgniter 中,可以通过设置 ENVIRONMENT 常量完成。

2.5K20

CMS-CMS框架解析

框架处理流程: 用户输入URL->rewrite等操作将URL导入到入口文件index.php->预设常量->解析URL生成路由(伪静态实现地方),从路由中分解出控制器和方法->类自动载入实现->调用控制器...第一步,用户输入URL 1. 格式1:http://www.jianzhu.com/index.php/index/index?...之后字符串 SCRIPT_NAME:脚本名字,即入口脚本名字为index.php PHP_SELF:即端口后问号之前路径,要和SCRIPT_NAME相互区分 REQUEST_URI...56到59行加载了初始化程序 61行预定义了一些常量 64到70行 查看了控制器module是否存在,即控制器是否存在 73到75行读取该控制器该方法缓存,如果没有缓存则执行该控制器方法excute...类名cpHtmlCache用该类读写缓存,具体内容参见CMS该类 该类功能概括下就是,将方法获取内容写入到缓存文件中,取得时候从缓存文件中取,可以清空删除缓存文件,在取时候通过缓存文件创建时间和当前时间判断缓存文件有无过期

5.1K10

CodeIgniter框架Apache和Nginx伪静态规则记录

这几天一直在纠结CodeIgniter框架问题,一个项目是用到CodeIgniter框架配置,但是由于之前运维人员跑路且数据也丢失,无奈我帮助恢复N月之前也不知道是不是备份完整数据。...作为应该是比较知名PHP框架之一CodeIgniter,虽然老蒋以前都没有听说过,但是这几天查阅资料发现用户还是非常多。...通过这篇文章,将CodeIgniter框架用到伪静态规则记录下来,以便以后需要用时候复制使用,这个很关键,差一点点导致我2天时间一直在无比纠结中。...-e $request_filename) { rewrite ^/(.+)$ /index.php/$1 last; } } 第二、Apache规则 RewriteEngine On RewriteBase...-d RewriteRule ^(.*)$ index.php?/$1 [L] 记录一下,以后可能需要用到。

1.8K40

tp5.1 框架路由操作-URL生成实例分析

使用助手函数 url('@index/blog/read', 'id=5'); 那么自动生成URL地址变为: /index.php/blog/5.html 使用类方法生成 如果你路由地址是路由到类方法...生成URL地址为: http://blog.thinkphp.cn/read/id/5.html#anchor 隐藏或者加上入口文件 有时候我们生成URL地址可能需要加上index.php或者去掉index.php...,大多数时候系统会自动判断,如果发现自动生成地址有问题,可以直接在调用build方法之前调用root方法,例如加上index.phpUrl::root('/index.php'); Url::build...更多关于thinkPHP相关内容感兴趣读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI...(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

1.1K20

-管理多个应用

管理多个应用 默认情况下,假定您仅打算使用CodeIgniter管理一个应用程序,该应用程序将在您应用程序 目录中构建。...为此,请打开主index.php并在 变量中设置完整服务器路径$application_directory: $application_directory = '/path/to/your/application...'; 一个CodeIgniter安装程序运行多个应用程序 如果您想共享一个常见CodeIgniter安装管理几个不同应用程序,只需将位于应用程序目录内所有目录放入它们自己子目录中。...例如,要选择“ foo”应用程序,您可以这样做: $application_directory = 'applications/foo'; 注解 您每个应用程序都将需要自己index.php文件,该文件将调用所需应用程序...该index.php文件可以被命名为任何你想要

1.1K30

thinkphp框架实现路由重定义简化url访问地址方法分析

本文实例讲述了thinkphp框架实现路由重定义简化url访问地址方法。...分享给大家供大家参考,具体如下: 如果按照正常访问的话,则需要输入一长串url地址,这样会显得十分冗长,我可以可以通过对路由规则重新定义简化url访问地址。 <?...本来访问路径应该是: localhost/tp/index.php/index/index/hello 我们在路由定义文件(application/route.php)里面添加一些路由规则,如下...当name参数没有传入值时候,hello方法name参数有默认值World,所以输出内容为 Hello,World!...》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程

1.2K50

从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解

【隐藏urlindex.php入口文件】 以Apache服务器为例,首先确认Apache配置文件httpd.conf中开启了mod_rewrite.so模块: ?...【get传参】 tp5废除了url/参数名1/参数值1/参数名2/参数值2……这样方式传参,还是老老实实用url?参数名1=参数值1&参数名2=参数值2……这样传吧。 控制器里打印$_GET: <?...'; db('article')- where($whe)- update($data); 删除数据:没错还是delete() //删除数据 $whe['article_id'] = 1; db('article...【url分隔符修改】 修改application/config.php中pathinfo_depr : // pathinfo分隔符 'pathinfo_depr' = '-', 访问网址变为...:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork

2.9K30

拒绝重复造轮子,用composer搞自己框架(2)

久负盛名 CodeIgniter 框架是很多人 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站框架。...下面我们就开始自己构建路由,先去 GitHub 搜一下:点此查看搜索结果 推荐https://github.com/NoahBuscher/Macaw,对应 Composer 包为 noahbuscher...下面,就是见证奇迹时刻!我们将赋予 MFFC 生命力,让它真正地跑起来! 新建 MFFC/public 文件夹,这个文件夹将是用户唯一可见部分。在文件夹下新建 index.php 文件: <?...Composer 自动加载在每次 URL 驱动 MFFC/public/index.php 之后会在内存中维护一个全量命名空间类名到文件名数组,这样当我们在代码中使用某个类时候,将自动载入该类所在文件...中两个参数。第一个参数是我们想要监听 URL 值,第二个参数是一个 PHP 闭包,作为回调,代表 URL 匹配成功后我们想要做事情。 4.

1.2K90
领券