ThinkPHP6.0 重写URL去掉Index.php的解决方法

踩坑!

官网给的解决方案: 解决重写URL,省去index.php问题

可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:

[ Apache ]
httpd.conf配置文件中加载了mod_rewrite.so模块
AllowOverride None 将None改为 All

把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

官网文档中给的 .htaccess 文件内容如下

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] #这一行踩坑
</IfModule>

正确的写法应该如下,官网给的最后一行配置错误

<IfModule mod_rewrite.c>
 Options +FollowSymlinks -Multiviews
 RewriteEngine On

 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] #这才是对的
</IfModule>

结尾

解决问题最好多看看官方给的文档,但有时候也不能全看官网文档,可以结合官网下面的讨论区,借鉴各个大佬们的回答去解决问题

时间: 2021-01-06

PHP采用get获取url汉字出现乱码的解决方法

本文实例讲述了PHP采用get获取url汉字出现乱码的解决方法.分享给大家供大家参考.具体方法如下: 一.问题: 本来打算这样使用 复制代码 代码如下: <a href="list.php?plate=辖区动态" charset="utf-8" target="main">[查看辖区动态]</a> 结果在list.php页面得到的是-–查看[辖区动怿] 一开始猜想可能是汉字的"态"这个编码和某些东西冲突

url传递的参数值中包含&时,url自动截断问题的解决方法

一.问题的引出 在做一个公告浏览功能时,只要通过url传递的某参数值中包含 & 或  ,就会出现问题--该变量的值无法显示. 问题定位结果: 遇到&时,该参数的值会自动截断,导致参数值传递有误. 二.问题的解决 java代码中做如下测试: String  charEncode = java.net.URLEncoder.encode("&"); System.out.println("字符& 转译后的值为:" + charEncode

访问编码后的中文URL返回404错误的解决方法

昨天做一个项目,其中有一个需求是每一张图片对应一小段文字对图片的说明,普通的做法是新建一个表然后把图片名与说明文字都记录到数据库内.仔细考虑后感觉这个应用不要数据库也能完成,我实现的方案是把说明文字URLENCODE后当做文件名,这样当我读取文件的时候再把文件名URLDECODE就可以后驱图片的文字说明了. 可是通过浏览器访问图片时却提示找不到文件,如有一张图片的说明文字为"琼台博客",URLENCODE后生成的文件名如下 复制代码 代码如下: %E7%90%BC%E5%8F%B0%E

java 页面url传值中文乱码的解决方法

中文问题,是在应用中常常遇到的问题. 这将涉及到字符解码操作,我们在应用中常常会用new String(fieldType.getBytes("iso-8859-1"), "UTF-8");等类似的方法去解码.但这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码. 在这里介绍一种解决方法,可以在任何应用部署环境下通用.此方法分两步: 1.在客户端用escape(encodeURIComponent(fieldValue))方法编码,例如: 复

Android Studio3.0升级后使用注意事项及解决方法

Gradle plugin最高版本4.* 老的项目在使用新版本时,可能会出现gradle plugin冲突的问题 Error:Failed to open zip file. Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync project (requires network)

Android 8.0中一些坑以及对应的解决方法

前言 虽然 Android 9.0 都已经面世了,本篇文章写的有点迟了. 但是迟到好过不到,因此基于此这边还是记录一下项目中遇到的 Android 8.0 的坑及对应解决方法. 每次系统升级,虽然系统功能更加强大了,各方面性能也提高了. 但是对于开发者而言,一个困扰的问题也是随之而来--兼容. 尤其对于一些已经上市的 App 而言,在新系统发布之前就要了解到底有哪些改动,以避免用户升级新系统后导致 App 没法正常运行. 好了,回归主题,说说 Android 8.0 里面的几个坑吧. 唤不起系统

php url地址栏传中文乱码解决方法集合

php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解url编码语法: string urlencode(string str);返回值: 字符串函数种类: 编码处理例如: 复制代码 代码如下: <?php$ChineseName="我的名字,是中文的哦";$EncodeStr=urlencode($ChineseName);echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名

详解mysql8.0创建用户授予权限报错解决方法

问题一: 会报错的写法: GRANT ALL PRIVILEGES ON *.*  'root'@'%' identified by '123123' WITH GRANT OPTION; 以下是正确的写法: grant all privileges on *.* to 'root'@'%' ; 可见,在授权的语句中需要去掉 IDENTIFIED BY 'password'; 单独授予某种权限的写法: GRANT SELECT ON oilsystem.input TO 'u5'@'localh

ASP的chr(0)文件上传漏洞原理和解决方法介绍

我们在用ASP开发文件上传功能的时候,为了防止用户上传木马程序,常常会限制一些文件的上传,常用的方法是判断一下上传文件的扩展名是否符合规定,可以用right字符串函数取出上传文件的文件名的后四位,这样很容易就能判断了,但是这里面有一个漏洞,非常危险,就是chr(0)漏洞,详情请接着往下看. 一.首先解释下什么是chr(0)? 在ASP中可以用chr()函数调用ASCII码,其中chr(0)表示调用的是一个结束字符,简单的说当一个字符串中包含chr(0)字符时,只能输出chr(0)前面的字符,ch

php Notice: Undefined index 错误提示解决方法

第一种方法:如果不影响程序的正常执行,可以采用屏蔽的方法 可以在代码的第一行 加上 error_reporting(E_ALL ^ E_NOTICE); 关闭掉 NOTICE错误的警告 第二种方法:定位到具体的行,根据提示解决.例如elseif ($_POST['istrue'] == 'ok'),如上代码,没有提交istrue这个,所以肯定是有问题的. 可以用如下代码解决上面先判断 复制代码 代码如下: if(array_key_exists( 'istrue',$_POST)) { if($