백엔드 개발 PHP 튜토리얼 ThinkPHP32URL은 숨겨진 응용 프로그램의 항목 파일 indexphp를 다시 작성합니다.

ThinkPHP32URL은 숨겨진 응용 프로그램의 항목 파일 indexphp를 다시 작성합니다.

Jul 29, 2016 am 08:55 AM
index quot request rewrite

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

[ Apache ]

  1. httpd.conf配置文件中加载了mod_rewrite.so模块
  2. AllowOverride None 将None改为 All
  3. 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下
<ol>
<li><code><span><IfModule</span><span>mod_rewrite</span><span>.</span><span>c</span><span>></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></IfModule></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></span></code></li>
<li><code><span><rules></span></code></li>
<li><code><span><rule</span><span>name</span><span>=</span><span>"OrgPage"</span><span>stopProcessing</span><span>=</span><span>"true"</span><span>></span></code></li>
<li><code><span><match</span><span>url</span><span>=</span><span>"^(.*)$"</span><span>/></span></code></li>
<li><code><span><conditions</span><span>logicalGrouping</span><span>=</span><span>"MatchAll"</span><span>></span></code></li>
<li><code><span><add</span><span>input</span><span>=</span><span>"{HTTP_HOST}"</span><span>pattern</span><span>=</span><span>"^(.*)$"</span><span>/></span></code></li>
<li><code><span><add</span><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></code></li>
<li><code><span><add</span><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></code></li>
<li><code><span></conditions></span></code></li>
<li><code><span><action</span><span>type</span><span>=</span><span>"Rewrite"</span><span>url</span><span>=</span><span>"index.php/{R:1}"</span><span>/></span></code></li>
<li><code><span></rule></span></code></li>
<li><code><span></rules></span></code></li>
<li><code><span></rewrite></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教程有兴趣的朋友有所帮助。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

index.html은 어떤 파일인가요? index.html은 어떤 파일인가요? Feb 19, 2024 pm 01:36 PM

index.html은 웹 페이지의 홈 페이지 파일을 나타내며 웹 사이트의 기본 페이지입니다. 사용자가 웹사이트를 방문하면 일반적으로 index.html 페이지가 먼저 로드됩니다. HTML(HypertextMarkupLanguage)은 웹 페이지를 만드는 데 사용되는 마크업 언어이며 index.html도 HTML 파일입니다. 여기에는 웹페이지의 구조와 콘텐츠는 물론 서식 지정과 레이아웃에 사용되는 태그와 요소도 포함됩니다. 다음은 index.html 코드의 예입니다. &lt

PHP 요청은 무엇을 의미합니까? PHP 요청은 무엇을 의미합니까? Jul 07, 2021 pm 01:49 PM

요청의 중국어 의미는 "요청"입니다. PHP의 전역 변수이며 "$_POST", "$_GET" 및 "$_COOKIE"를 포함하는 배열입니다. "$_REQUEST" 변수는 POST 또는 GET으로 제출된 데이터 및 COOKIE 정보를 얻을 수 있습니다.

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의 요청 객체란 무엇입니까? PHP의 요청 객체란 무엇입니까? Feb 27, 2024 pm 09:06 PM

PHP의 요청 객체는 클라이언트가 서버로 보낸 HTTP 요청을 처리하는 데 사용되는 객체입니다. Request 객체를 통해 요청 메소드, 요청 헤더 정보, 요청 매개변수 등과 같은 클라이언트의 요청 정보를 얻어 요청을 처리하고 응답할 수 있습니다. PHP에서는 $_REQUEST, $_GET, $_POST 등과 같은 전역 변수를 사용하여 요청된 정보를 얻을 수 있지만 이러한 변수는 객체가 아니라 배열입니다. 요청사항을 보다 유연하고 편리하게 처리하기 위해

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로 헤더를 설정하여 달성할 수 있습니다. 물론 nginx의 rewrite 기능을 사용하여 구현할 수도 있습니다. nginxrewrite 모듈 rewrite는 nginx의 정적 재작성 모듈입니다. . 기본 사용법은 rewritepattenre입니다.

PHP에서 요청의 역할과 중요성 PHP에서 요청의 역할과 중요성 Feb 27, 2024 pm 12:54 PM

PHP에서 요청의 역할과 중요성 PHP 프로그래밍에서 요청은 웹 서버에 요청을 보내는 메커니즘으로 웹 개발에서 중요한 역할을 합니다. 요청은 주로 양식 제출, GET 또는 POST 요청 등과 같이 클라이언트가 보낸 데이터를 얻는 데 사용됩니다. 요청을 통해 사용자가 입력한 데이터를 얻을 수 있으며 데이터를 처리하고 응답할 수 있습니다. 이 기사에서는 PHP에서 요청의 역할과 중요성을 소개하고 구체적인 코드 예제를 제공합니다.

Vue3 Axios 인터셉터를 요청 파일에 캡슐화하는 방법 Vue3 Axios 인터셉터를 요청 파일에 캡슐화하는 방법 May 19, 2023 am 11:49 AM

1. request.js라는 새 파일을 생성하고 Axios 가져오기: importaxiosfrom'axios' 2. request라는 함수를 생성하고 내보내기: request라는 함수를 생성하고 이를 내보냅니다. 기본 URL을 사용하여 새 Axios 인스턴스를 설정합니다. . 래핑된 Axios 인스턴스에 시간 초과 설정을 추가하려면 Axios 인스턴스를 생성할 때 시간 초과 옵션을 전달할 수 있습니다. 내보내기constrequest=axios.create({baseURL:'https://example.

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

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

See all articles