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

当我使用index.php/User/login时,它可以工作,但当我使用User.login时,即使在codeigniter中删除了index.php,它也不能工作

这个问题涉及到URL路由和重写规则的配置。在使用CodeIgniter框架时,可以通过配置URL路由规则来实现不带index.php的URL访问。

首先,确保服务器环境已经开启了URL重写功能。然后,在CodeIgniter的配置文件config.php中,将index_page参数设置为空字符串,即:

$config['index_page'] = '';

接下来,需要配置URL路由规则。在config.php文件中,找到$route数组,可以添加以下规则:

$route['User/login'] = 'index.php/User/login';

这样,当访问User/login时,实际上会被重写为index.php/User/login进行处理。

另外,如果想要进一步简化URL,可以使用.htaccess文件进行URL重写。在项目根目录下创建一个名为.htaccess的文件,并添加以下内容:

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]

保存并上传该文件到服务器上。这样,就可以实现不带index.php的URL访问。

总结一下,通过配置URL路由规则和使用.htaccess文件进行URL重写,可以实现不带index.php的URL访问。这样可以提升URL的美观性和可读性,同时也符合现代化的Web开发要求。

推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云域名服务(https://cloud.tencent.com/product/dns)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CI一些优秀实践

当在超过一个地方编写相同的代码,应该根据的类型来尝试编写一个 library, helper,或 model。比如数据库连接类,用得很频繁,就把做成 model(系统已提供)。...通过保护你的邮件表单,评论表单,以及其他各种免费用户提交的数据来防止垃圾信息,一个简单的方法是只允许一个IP/User客户端一分钟之内只能提交一次,一个比较好的方式是使用 Captcha ,CI2内置了一个...当你需要更强大的工具,你可以考虑使用 Object Relational Mapper ,就是鼎鼎大名的 ORM 了,遗憾的是,CodeIgniter 没有自带 ORM 库,不过也有一些其他很好的选择...客户端你能够通过单独发送HTTP头部使浏览器缓存页面来提高性能,当你使用 AJAX 的时候你也需要了解来禁止浏览器缓存。...CodeIgniter工作过程 当有一个http请求,如http://www.google.com/blog/,首先进入CI的引导文件index.php

3.3K50
  • 系列开篇

    最新中文手册 https://codeigniter-chinese.github.io/codeigniter4-user-guide/index.html CodeIgniter4与以往版本有大的变更...CodeIgniter 可以 GitHub 上公开访问。请注意,尽管我们保持代码的基础功能上做出了大量的努力,但是我们并不能为开发分支的代码的功能作担保。...注解 使用 CodeIgniter 之前, 请确认你的服务器符合 要求. 手动安装 CodeIgniter 通过手动下载并解压压缩包来安装。...Composer 安装 虽然不是必须的,可以通过 composer create-project 命令来安装 CodeIgniter。...在生产环境中所要做的一个额外操作是禁用 PHP 错误报告以及其它任何仅开发使用的功能。 CodeIgniter 可以通过设置 ENVIRONMENT 常量来完成。

    2.5K20

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

    久负盛名的 CodeIgniter 框架是很多人的 PHP 开发入门框架,同样也是我开始学习如何从头构建一个网站的框架。... CI我学到了很多,其中对 MVC 的深入理解和对框架本质的理解对我的影响最大。从使用框架是为了提高开发效率的角度来看,框架的本质就是路由。...目前的代码使用 Apache + mod_php 和 Nginx + php-fpm 方式均没有问题。 我本地绑定 可以看到: ? 如果页面乱码,请调整编码为 UTF-8。...Composer 的自动加载每次 URL 驱动 MFFC/public/index.php 之后会在内存维护一个全量命名空间类名到文件名的数组,这样当我代码中使用某个类的时候,将自动载入该类所在的文件...能直接匹配到的会直接调用回调,不能直接匹配到的将利用正则进行匹配。

    1.2K90

    BugKu-WEB-3

    我们可以发现 当我们随便输入一个用户名“lsr”, 回显用户名不存在,并没有对密码进行检验。 当我们输入用户名“admin”,回显密码错误,则说明 是先查找匹配用户名,如果存在,再验证密码。...因为’admin’^0^0和’admin’^1^1是一样的,我们可以构造后者来看前者成立时的情况。 因为这里即使是语法错误也不会报错,有可能你输入的语句就不可能成立,你也无法知道。...当cookie存在cipher、iv,对cipher进行解密。这里是解题的关键,可以通过修改cookie的cipher值,将序列化数据的用户名修改成admin。...image.png 最后执行到show_homepage()方法,当我check_login()把用户名修改为admin,这里输出flag。...解题: 访问题目页面,使用用户名admil,密码123登陆。页面提示内容与审计的结果一致。此时程序已经执行了login()方法,cookie写入了cipher和iv。

    87440

    讲解-加载静态页

    讲解 本教程旨在向您介绍CodeIgniter框架和MVC体系结构的基本原理。它将向您展示如何以逐步的方式构造基本的CodeIgniter应用程序。 本教程,您将创建一个基本的新闻应用程序。...控制器将是你 Web 应用程序处理请求的核心。和其他的 PHP 类一样,可以在你的控制器中使用 $this 来访问。 现在,你已经创建了你的第一个方法,是时候创建一些基本的页面模板了。...页头模板文件,$title 变量代表页面的自定义标题,它是方法中被赋值的,并不是直接赋值给 title 变量,而是赋值给 $data 数组的 title 元素。...当你访问 index.php/pages/view/about 你将看到包含页头和页脚的 about 页面。...当获取到请求CodeIgniter 首先查找能匹配到的第一条规则,然后调用相应的可能存在参数的控制器和方法。 你可以关于 URL路由的文档 中找到更多信息。

    3.6K10

    搭建自己的PHP MVC框架详解

    r=index/login 后,系统会自动调用/app/Controller/Index.php下的login方法。完成了这么一个简单的路由。...另外,call_user_func系列函数还可以传入第一个参数里传入匿名参数,可以很方便的回调某些事件,这些特性复杂的框架里应用也十分广泛,如yii2的事件机制里回调函数的使用就是基于此。...个人其优点如下: ① 可以快速终止流程,重置系统状态,清理变量和内存占用,普通WEB应用,一次请求结束后,FAST CGI会自动清理变量和上下文,如果在PHP的命令行模式执行守护脚本的效果就会很方便了...try catch语句,需要注意: ① 当我们抛出异常,会实例化一个异常类,此异常类可以自己定义,但在catch语句中,我们需要规定要捕获的异常对象的类名,并且只能捕获到特定类的异常对象,当然我们可以最后捕获一个异常基类...② 抛出异常,程序会被终止,并回溯代码找到第一个能捕获到的catch语句,try catch语句是可以嵌套的,并且如上面代码所示 cacth语句是可以多次定义的。

    1.1K50

    -代码模块

    代码模块 CodeIgniter支持代码模块化组合,以便于你构建可重用的代码。模块通常来说是以一个特定主题为中心而构建的,并可被认为是大型的程序的一系列微型程序。...虽然所有的代码都可以使用PSR4的自动加载和命名空间,最主要的充分使用模块优势的方式还是为你的代码加上命名空间,并将其添加到 app/Config/Autoload.php  psr4 这节。...acme' ]; 当我们设置完以上流程后,就可以通过 Acme 命名空间来访问 acme 目录下的文件夹内容。这已经完成了80%的模块工作所需要的内容, 所以你可以通过熟悉命名空间来适应这种使用方式。...明确目录项目 通过 $activeExplorers 选项,你可以明确哪些项目是自动发现的。如果这个项目不存在,就不会对进行自动发现流程,而数组的其他成员仍旧会被自动发现。...只要存在于 Helpers 命名空间目录下: helper('blog'); 语言文件 当使用 lang() 方法,语言文件是通过定义的命名空间来自动定位的。

    1.2K10

    搭建自己的PHP MVC框架详解

    r=index/login 后,系统会自动调用/app/Controller/Index.php下的login方法。完成了这么一个简单的路由。...另外,call_user_func系列函数还可以传入第一个参数里传入匿名参数,可以很方便的回调某些事件,这些特性复杂的框架里应用也十分广泛,如yii2的事件机制里回调函数的使用就是基于此。...个人其优点如下: ① 可以快速终止流程,重置系统状态,清理变量和内存占用,普通WEB应用,一次请求结束后,FAST CGI会自动清理变量和上下文,如果在PHP的命令行模式执行守护脚本的效果就会很方便了...try catch语句,需要注意: ① 当我们抛出异常,会实例化一个异常类,此异常类可以自己定义,但在catch语句中,我们需要规定要捕获的异常对象的类名,并且只能捕获到特定类的异常对象,当然我们可以最后捕获一个异常基类...② 抛出异常,程序会被终止,并回溯代码找到第一个能捕获到的catch语句,try catch语句是可以嵌套的,并且如上面代码所示 cacth语句是可以多次定义的。

    1.1K40

    通过 BlueCMS 学习 php 代码审计

    即使现在web开发技术十分成熟了,仍有人因为经验缺乏或时间原因会开发出类似BlueCMS这样简单的系统,甚至比BlueCMS更简单。...目录结构 通过目录结构可以简单看出程序的逻辑 目录结构主要关注入口文件index.php程序的位置,BlueCMS时期的程序 index.php 基本位于程序根目录下,其实这是不安全的,会导致整个程序文件被窃取的风险...index.php不能算入口文件,只是在做一个页面的显示工作,从这里我们大概知道前台是一个多入口的模式,注意多入口的系统需要对每个入口文件单独做安全过滤,它们通常都会加载同一个文件来实现,BlueCMS...还做好了数据库连接工作,$db 为连接数据的对象,后续可以直接使用 comon.inc.php 的其他处理逻辑注释即可 // 加载一些基础文件 require_once (BLUE_ROOT.'...frame来实现的,这样后台程序的所有功能都可以依附在index.php下实现,早期的CMS,基本都是这种实现方案 <frameset rows="76,*" frameborder="no" border

    1.8K30

    二次注入简单介绍

    基本介绍 这里所谓的二次注入其实就是将可能导致SQL注入的字符先存入到数据库,而当我们再次调用这个恶意构造的字符可以触发SQL注入,这一种注入平时并不常见,但是确实是存在的一种注入,故此在这里将其单独拎出来说一下...注入原理 二次注入的原理是第一次进行数据库插入数据的时候,仅仅只是使用了addslashes或者是借助get_magic_quotes_gpc对其中的特殊字符进行了转义,写入数据库的时候还是保留了原来的数据...,数据带有单引号,直接插入到了数据库然后在下一次使用拼凑的过程中就形成了二次注入: 总结起来二次注入其实是分为两个步骤: 插入恶意数据 引用恶意数据 注入思路 二次排序注入思路: 1、黑客通过构造数据的形式浏览器或者其他软件中提交...3、黑客向服务端发送第二个与第一次不相同的请求数据信息 4、服务端接收到黑客提交的第二个请求信息后为了处理该请求,服务端会查询数据库已经存储的数据信息并处理,从而导致黑客第一次请求构造的SQL语句或者命令服务端环境执行...5、服务端返回执行的处理结果数据信息,黑客可以通过返回的结果数据信息判断二次注入漏洞利用是否成功 注入案例 这里以Sql-labs的Less-24为例做演示: 程序源代码 login_create.php

    22710

    Golang 语言怎么避免空指针引发的 panic

    *User 类型的返回值,因为返回值变量是空指针,当我们访问返回值的字段,程序引发 panic。...避免此类空指针问题,一是可以返回值包含指针类型变量的函数或方法函数体开头初始化返回值的指针类型变量;二是调用结构体指针类型返回值的函数或方法操作返回值的字段或方法,先判定返回值是否为...} func (u User) Login() { } 阅读上面这段代码,我们通过调用函数 GetUser() 获取 *User 类型的返回值,因为返回值变量是空指针,当我们访问返回值的方法 Login...避免此类空指针问题,一是可以返回值是指针类型变量的函数或方法的函数体,开头先初始化返回值的指针类型变量;二是类型方法的接收者使用指针类型。...避免此类空指针问题,我们可以使用 defer 调用之前,先做错误检查,并且遇到错误后停止向下执行。

    3.1K11

    Kali Linux Web 渗透测试秘籍 第四章 漏洞发现

    我们可以看到,参数id对应页面上的文本框,所以,我们可以使用 Hackbar 修改id来尝试任何值,而不需要修改文本框User ID并提交。...工作原理 Tamper Data 会在请求离开浏览器之前捕获请求,并提供给我们时间来修改包含的任何变量。但是,它也有一些限制,例如不能编辑 URL 或 GET 参数。...工作原理 就像在上个秘籍中看到的那样,在请求经过由应用建立客户端的验证机制之前,我们使用代理来捕获请求,并通过添加一些检验不允许的字符,修改了的内容。...工作原理 跨站脚本漏洞服务端和客户端没有输入校验,并且输出没有合理编码发生。这意味着应用允许我们输入用于 HTML 代码的字符。...基于错误的 SQL 注入,我们使用由服务器发送的错误来识别查询类型,表和列的名称。 另一方面,当我们视图利用盲注,我们需要通过问问题来得到信息。

    84120

    路由和URL的区别与联系

    module=home&controller=user&action=login&var=value m参数表示模块,c参数表示控制器,a参数表示操作(当然这些参数都是可以配置的),后面的表示其他GET...访问地址是: http://www.huthon.com/index.php/home/user/login/var/value/ http://serverName/index.php/模块/控制器/...操作 设置为2 为REWRITE模式 省略了index.php; 是PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则...要使用路由功能,前提是你的URL支持PATH_INFO(或者兼容URL模式也可以,采用普通URL模式的情况下不支持路由功能),并且应用(或者模块)配置文件Conf/config.php开启路由 'URL_ROUTER_ON...,可以转换为第2种定义格式: 'product/:category\d/:id\d'=>array('Products/Show','status=1') 上面的路由规则 \d 表示只匹配数字,当不加此约束

    3.1K20

    Kali Linux Web 渗透测试秘籍 第六章 利用 -- 低悬的果实

    工作原理 在上传有效 JPG 文件,我们所做的第一个测试是为了发现上传文件保存的路径,便于我们可以rename.php,以及表单的action中使用这个路径。...但是,通过检查代理的历史,我们可以看到出现在重定向之后,Hydra只读取第一个响应,所以不能用,这也是我们使用login.php作为失败字符串的原因。...-o hydra-result.txt:将输出保存到文本文件当我们拥有几百个可能有效的密码这会很实用。 更多 要注意我们没有使用-P选项来使用密码列表,或者-x选项来自动生成密码。...当我们拥有不能混用的预定义数据,这会非常有用,例如,测试已知的用户名和密码。 Cluster bomb:测试多个载荷,所以每个可能的排列都可以测试到。...或更有趣的是,我们可以使用--osshell在数据库服务器执行系统命令(注入 MSSQL 服务器特别有用)。

    76920

    从多个基础CMS入坑代码审计

    代码审计是一个编程对源代码旨在发现错误、安全漏洞或违反编程约定的项目。 说人话就是找这些代码可能存在问题的地方,然后看它是否真的存在漏洞。...任意文件删除关键词 这类修改头像、修改内容可能比较常见,然后一般我们就可以去这类文件下看它是否有unlink函数,如果有的话就可能存在任意文件删除漏洞 工具 我们一般自己去找的话有点慢,效率不高,代码审计有应用可以帮助我们进行代码审计...ad_id=-1 order by 8 当是7的时候无回显,为8的时候报错,说明字段数为7,接下来尝试联合查询 -1 union select 1,2,3,4,5,6,7 看起来是无回显的,当我们去查看源代码就会发现是有回显的...也曾利用过,这里我们再次尝试 先在本地放一个txt文件 内容为phpinfo即可,具体如下 采用路径长度截断(.号长度大于256即可) 注 这个经过测试,只有php版本为5.2.17可以成功...install/index.php 在此处发现有update语句和可控的变量password和username,查看这两个变量的传入方式 可以发现是直接传入的,没有什么过滤,那么这里就可以user

    69590

    从多个基础CMS中学习代码审计

    代码审计是一个编程对源代码旨在发现错误、安全漏洞或违反编程约定的项目。 说人话就是找这些代码可能存在问题的地方,然后看它是否真的存在漏洞。...任意文件删除关键词这类修改头像、修改内容可能比较常见,然后一般我们就可以去这类文件下看它是否有unlink函数,如果有的话就可能存在任意文件删除漏洞工具我们一般自己去找的话有点慢,效率不高,代码审计有应用可以帮助我们进行代码审计...order by 7ad_id=-1 order by 8 当是7的时候无回显,为8的时候报错,说明字段数为7,接下来尝试联合查询-1 union select 1,2,3,4,5,6,7 看起来是无回显的,当我们去查看源代码就会发现是有回显的...也曾利用过,这里我们再次尝试 先在本地放一个txt文件 内容为phpinfo即可,具体如下 采用路径长度截断(.号长度大于256即可) 注这个经过测试,只有php版本为5.2.17可以成功,...install/index.php 在此处发现有update语句和可控的变量password和username,查看这两个变量的传入方式 可以发现是直接传入的,没有什么过滤,那么这里就可以user变量处尝试

    40310

    小白的代码审计初始之路

    代码审计是一个编程对源代码旨在发现错误、安全漏洞或违反编程约定的项目。 说人话就是找这些代码可能存在问题的地方,然后看它是否真的存在漏洞。...任意文件删除关键词 这类修改头像、修改内容可能比较常见,然后一般我们就可以去这类文件下看它是否有unlink函数,如果有的话就可能存在任意文件删除漏洞 工具 我们一般自己去找的话有点慢,效率不高,代码审计有应用可以帮助我们进行代码审计...ad_id=-1 order by 8 当是7的时候无回显,为8的时候报错,说明字段数为7,接下来尝试联合查询 -1 union select 1,2,3,4,5,6,7 看起来是无回显的,当我们去查看源代码就会发现是有回显的...也曾利用过,这里我们再次尝试 先在本地放一个txt文件 内容为phpinfo即可,具体如下 采用路径长度截断(.号长度大于256即可) 注 这个经过测试,只有php版本为5.2.17可以成功...install/index.php 在此处发现有update语句和可控的变量password和username,查看这两个变量的传入方式 可以发现是直接传入的,没有什么过滤,那么这里就可以user

    65970

    PHP cookie与session会话基本用法实例分析

    不论是使用cookie方式存储,还是session方式存储使用存储的函数之前都不能有输出语句,否则会产生一个e级错误 使用cookie的存储的方式 setcookie('cookie_name','...cookie_value',cookie_time); 之后还有两个参数,忘记是什么使用方法了姑且就这样吧 使用session的存储方式 session_start()); 当用户一次执行到session_start...()这个函数,会产生一个session_id(),这个session_id()会复制一份,一份作为文件名,保存在服务器上,一份作为字符串保存给客户端的session_name()的文件下,当用户第二次执行到...sessio_start()的时候用户是带着自己的session_id()多来的,然后当我们需要使用到session的时候,客户端会拿着自己的session_id()服务器上找与自己手上的session_id...");//如果不存在session则跳转到页面index.php } //如果你觉得我打的代码对你有帮助,求评论,请注意发言的礼仪,乱说评论. ?

    53041
    领券