search
HomeBackend DevelopmentPHP TutorialThinkPHP32URL rewrites the entry file indexphp of the hidden application

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

[ Apache ]

  1. httpd.conf配置文件中加载了mod_rewrite.so模块
  2. AllowOverride None 将None改为 All
  3. 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下
<ol>
<li><code><span><ifmodule><span>mod_rewrite</span><span>.</span><span>c</span><span>></span></ifmodule></span></code></li>
<li><code><span> RewriteEngine on</span></code></li>
<li><code><span> RewriteCond %{REQUEST_FILENAME} !-d</span></code></li>
<li><code><span> RewriteCond %{REQUEST_FILENAME} !-f</span></code></li>
<li><code><span> RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</span></code></li>
<li><code><span></span></code></li>
</ol>

[ IIS ]

如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:

<ol><li><code><span>RewriteRule</span><span>(.*)</span><span>$ </span><span>/</span><span>index\.php\?s</span><span>=</span><span>$1 </span><span>[</span><span>I</span><span>]</span></code></li></ol>

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:

<ol>
<li><code><span><rewrite></rewrite></span></code></li>
<li><code><span><rules></rules></span></code></li>
<li><code><span><rule><span>name</span><span>=</span><span>"OrgPage"</span><span>stopProcessing</span><span>=</span><span>"true"</span><span>></span></rule></span></code></li>
<li><code><span><match><span>url</span><span>=</span><span>"^(.*)$"</span><span>/></span></match></span></code></li>
<li><code><span><conditions><span>logicalGrouping</span><span>=</span><span>"MatchAll"</span><span>></span></conditions></span></code></li>
<li><code><span><add><span>input</span><span>=</span><span>"{HTTP_HOST}"</span><span>pattern</span><span>=</span><span>"^(.*)$"</span><span>/></span></add></span></code></li>
<li><code><span><add><span>input</span><span>=</span><span>"{REQUEST_FILENAME}"</span><span>matchType</span><span>=</span><span>"IsFile"</span><span>negate</span><span>=</span><span>"true"</span><span>/></span></add></span></code></li>
<li><code><span><add><span>input</span><span>=</span><span>"{REQUEST_FILENAME}"</span><span>matchType</span><span>=</span><span>"IsDirectory"</span><span>negate</span><span>=</span><span>"true"</span><span>/></span></add></span></code></li>
<li><code><span></span></code></li>
<li><code><span><action><span>type</span><span>=</span><span>"Rewrite"</span><span>url</span><span>=</span><span>"index.php/{R:1}"</span><span>/></span></action></span></code></li>
<li><code><span></span></code></li>
<li><code><span></span></code></li>
<li><code><span></span></code></li>
</ol>

[ Nginx ]

在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:

<ol>
<li><code><span>  location </span><span>/</span><span>{</span><span>// …..省略部分代码</span></code></li>
<li><code><span>if</span><span>(!-</span><span>e $request_filename</span><span>)</span><span>{</span></code></li>
<li><code><span>   rewrite  </span><span>^(.*)</span><span>$  </span><span>/</span><span>index</span><span>.</span><span>php</span><span>?</span><span>s</span><span>=</span><span>$1  </span><span>last</span><span>;</span></code></li>
<li><code><span>break</span><span>;</span></code></li>
<li><code><span>}</span></code></li>
<li><code><span>}</span></code></li>
</ol>

其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。

如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。youdomain需要按照入口文件index.php的目录来确定。

<ol>
<li><code><span>location </span><span>/</span><span>youdomain</span><span>/</span><span>{</span></code></li>
<li><code><span>if</span><span>(!-</span><span>e $request_filename</span><span>){</span></code></li>
<li><code><span>        rewrite  </span><span>^</span><span>/youdomain/</span><span>(.*)</span><span>$  </span><span>/</span><span>youdomain</span><span>/</span><span>index</span><span>.</span><span>php</span><span>?</span><span>s</span><span>=</span><span>$1  </span><span>last</span><span>;</span></code></li>
<li><code><span>}</span></code></li>
<li><code><span>}</span></code></li>
</ol>

原来的访问URL:

http://serverName/index.php/模块/控制器/操作/[参数名/参数值...]

设置后,我们可以采用下面的方式访问:

http://serverName/模块/控制器/操作/[参数名/参数值...]

默认情况下,URL地址中的模块不能省略,如果你需要简化某个模块的URL访问地址,可以通过设置模块列表和默认模块或者采用子域名部署到模块的方式解决,请参考后面的模块和域名部署部分。

以上就介绍了ThinkPHP32URL重写隐藏应用的入口文件indexphp,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
index.html是什么文件?index.html是什么文件?Feb 19, 2024 pm 01:36 PM

index.html代表网页的首页文件,是网站的默认页面。当用户访问一个网站时,通常会首先加载index.html页面。HTML(HypertextMarkupLanguage)是一种用于创建网页的标记语言,index.html也是一种HTML文件。它包含网页的结构和内容,以及用于格式化和布局的标签和元素。下面是一个示例的index.html代码:<

php request什么意思php request什么意思Jul 07, 2021 pm 01:49 PM

request的中文意思为“请求”,是php中的一个全局变量,是一个包含了“$_POST”、“$_GET”和“$_COOKIE”的数组。“$_REQUEST”变量可以获取POST或GET方式提交的数据、COOKIE信息。

PHP中的Request对象是什么?PHP中的Request对象是什么?Feb 27, 2024 pm 09:06 PM

PHP中的Request对象是用于处理客户端发送到服务器的HTTP请求的对象。通过Request对象,我们可以获取客户端的请求信息,比如请求方法、请求头信息、请求参数等,从而实现对请求的处理和响应。在PHP中,可以使用$_REQUEST、$_GET、$_POST等全局变量来获取请求的信息,但是这些变量并不是对象,而是数组。为了更加灵活和方便地处理请求信息,可

Python 3.x 中如何使用urllib.request.urlopen()函数发送GET请求Python 3.x 中如何使用urllib.request.urlopen()函数发送GET请求Jul 30, 2023 am 11:28 AM

Python3.x中如何使用urllib.request.urlopen()函数发送GET请求在网络编程中,我们经常需要通过发送HTTP请求来获取远程服务器的数据。在Python中,我们可以使用urllib模块中的urllib.request.urlopen()函数来发送HTTP请求,并获取服务器返回的响应。本文将介绍如何使用

PHP中Request的作用及意义PHP中Request的作用及意义Feb 27, 2024 pm 12:54 PM

PHP中Request的作用及意义在PHP编程中,Request是指向Web服务器发送请求的一种机制,它在Web开发中起着至关重要的作用。Request主要用于获取客户端发送过来的数据,比如表单提交、GET或POST请求等,通过Request能够获取到用户输入的数据,并对这些数据进行处理和响应。本文将介绍PHP中Request的作用及意义,并给出具体的代码示

nginx rewrite如何实现URL跳转nginx rewrite如何实现URL跳转Jun 03, 2023 am 11:55 AM

url跳转这里说的url跳转就是用户在访问一个url时将其跳转到另一个url上。常见的应用场景是让多个域名跳转到同一个url上,(例如让旧域名跳转到新域名上)将静态文件请求跳转到cdn上等根据用户设备跳转到不同站点(pc版,wap版)等。url跳转可以通过js在页面上设置的window.location实现也可以通过php设置header来实现当然也可以用nginx的rewrite功能实现nginxrewrite模块rewrite是nginx的静态重写模块基本用法是rewritepattenre

怎么将Vue3 Axios拦截器封装成request文件怎么将Vue3 Axios拦截器封装成request文件May 19, 2023 am 11:49 AM

1、创建一个名为request.js的新文件,并导入Axios:importaxiosfrom&#39;axios&#39;;2、创建一个名为request的函数,并将其导出:这将创建一个名为request的函数,并将其设置为具有基本URL的新的Axios实例。要在封装的Axios实例中添加超时设置,可以在创建Axios实例时传递timeout选项。exportconstrequest=axios.create({baseURL:&#39;https://example.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft