ThinkPHP5 隐藏接口里面的index.php

隐藏index.php

官方介绍是这样的:http://www.kancloud.cn/thinkphp/thinkphp5_quickstart/145250

可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。

Apache为例,需要在入口文件的同级添加.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>

接下来就可以使用下面的URL地址访问了

http://tp5.com/index/index/index
http://tp5.com/index/index/hello

如果你使用的apache版本使用上面的方式无法正常隐藏index.php,可以尝试使用下面的方式配置.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>

但是还是不行,查到这么一篇文章(http://bbs.php100.com/simple/?t300372.html):Apache Rewrite 拟静态配置1、mod_rewrite 简介和配置Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等如一个普通访问地址为      */php100.php?id=2可以转成:   */PHP100_2.html或转成:   */PHP100_2/

Apache配置:支持httpd.conf 配置和目录 .htaccess配置启用rewrite# LoadModule rewrite_module modules/mod_rewrite.so去除前面的 #LoadModule rewrite_module modules/mod_rewrite.so启用.htaccessAllowOverride None    修改为: AllowOverride All

2、mod_rewrite 规则的使用RewriteEngine onRewriteCond %{HTTP_HOST} !^www.php100.com  [NC] RewriteRule   ^/(.*) http://www.php100.com/ [L]启动rewrite引擎 判断主机 跳转到RewriteEngine onRewriteRule ^/test([0-9]*).html$ /test.php?id=$1 RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]

3、mod_rewrite 规则修正符1) R 强制外部重定向2) F 禁用URL,返回403HTTP状态码。3) G 强制URL为GONE,返回410HTTP状态码。4) P 强制使用代理转发。5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。6) N 重新从第一条规则开始运行重写过程。7) C 与下一条规则关联

如果规则匹配则正常处理,以下修正符无效

8) T=MIME-type(force MIME type) 强制MIME类型9) NS  只用于不是内部子请求10) NC 不区分大小写11) QSA 追加请求字符串12) NE 不在输出转义特殊字符   \%3d$1  等价于 =$1-----------------------------------------------------------------------------也就是最后还要补充这么处理:

把 #LoadModule rewrite_module modules/mod_rewrite.so 前面的#去掉,
再把权限AllowOverride None都改为AllowOverride All ,重启apache

时间: 2024-10-18 05:26:24

ThinkPHP5 隐藏接口里面的index.php的相关文章

thinkphp 去掉URL 里面的index.php(?s=)

例如你的原路径是 http://localhost/test/index.php/home/goods/index.html 那么现在的地址是 http://localhost/test/home/goods/index.html 如何去掉index.php呢?1.httpd.conf配置文件中加载了mod_rewrite.so模块  //在APACHE里面去配置 #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 2.AllowO

thinkphp 去掉URL 里面的index.php

例如你的原路径是 http://localhost/test/index.php/home/goods/index.html 那么现在的地址是 http://localhost/test/home/goods/index.html 如何去掉index.php呢? 1.httpd.conf配置文件中加载了mod_rewrite.so模块  //在APACHE里面去配置 #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 2.Allow

ASP.NET获取百度地图提供的API接口里面的JSON

思路:开始是想直接在前台获取,但是跨域访问还是有点难度,而且格式必须是josnp格式的,最后嫌麻烦,不得已放弃. 我做的ASP.NET  而这个有自带的解析类,直接引用就行了 先在后台获取到JOSN: 1 private void GetQZYZuoBiaoToMap(HttpContext context) 2 { 3 //判断登录是否失效 4 if (context.Session["_user"] == null) 5 { 6 WriteResponse(context, fal

ThinkPHP 隐藏URL中的 index.php

去掉 URL 中的 index.php 通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持. 例如原来的 URL 为: http://127.0.0.1/index.php/Index/insert 去掉 index.php 之后变为: http://127.0.0.1/Index/insert 第一步:更改Apache的httpd.conf 配置

[转]ThinkPHP5 隐藏index.php问题

ThinkPHP5 隐藏index.php问题 Apache,修改.htaccess文件 ----------------------------------------------------- RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]变成RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] Nginx,修改配置文件nginx.conf ----------------------------------------

提取数据库字段里面的值,并改变+图片懒加载,jquery延迟加载

要求:手机端打开某个页面的详细信息,因为网速或者别的原因,响应太慢,因为图片大的原因,希望先进来,图片在网页运行的情况再慢慢加载(jquer延迟加载) http://www.w3cways.com/1765.html()  困难:因为页面的图片是用编辑器加进去的        :图片与文字存到数据库的字段中 :实现思路:从数据库中读取这个字段,把字段里面的src替换成lazyload 然后再返回给页面 这里主要讲是怎么把从数据库取到的数据里面的字段里面的值替换然后与页面直接的数据转换 首先 pu

javascript正则找script标签, link标签里面的src或者 href属性

1. [代码]javascript 简单的search    <script(?:(?:\s|.)+?)src=[\"\'](.+?)[\"\'](?!\<)(?:(?:\s|.)*?)(?:(?:\/\>)|(?:\>\s*?\<\/script\>)) <script  src="sdfsdf/sdfd.js"          type="text/javascript"  /><scr

Collections里面的binarySearch方法

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ Collections里面的binarySearch方法查阅API发现其返回值类型为:如果搜索键包含在列表中,则返回搜索键的索引:否则返回 (-(插入点) - 1).插入点 被定义为将键插入列表的那一点:即第一个大于此键的元素索引:如果列表中

启动erlang/OTP里面的Web服务器

erlang OTP是一个完整可靠的大型库,乃前人艰苦卓绝之成就:现在尝试一下里面的application inets的Web服务器httpd,写一段代码调用inets服务: 1 -module(inets_httpd). 2 -export([start/0]). 3 4 start() -> 5 inets:start(), 6 inets:start(httpd, [{bind_address, {192,168,178,130}}, {ipfamily, inet}, {port, 18