>백엔드 개발 >PHP 문제 >PHP에서 페이지 라우팅 및 전달을 구현하는 방법

PHP에서 페이지 라우팅 및 전달을 구현하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-10-07 15:03:503693검색

PHP에서 페이지 라우팅 및 전달을 구현하는 방법: 먼저 nginx 서버를 구성하고 [.htaccess]에 nginx 구문을 작성한 다음 루트 디렉터리에서 [index.php]를 열고 파일 라우팅을 작성합니다.

PHP에서 페이지 라우팅 및 전달을 구현하는 방법

PHP에서 페이지 라우팅 및 전달을 구현하는 방법:

1 nginx 서버 구성

nginx 서버는 .htaccess를 자동으로 읽지 않으며 . htaccess 구문, 여기서 기회주의적인 방법을 수행해야 합니다. .htaccess에 nginx 구문을 작성하고 파일을 nginx 구성에 도입합니다. 이는 아파치와 동일한 목적을 달성합니다. .htaccess 파일을 편집하고, 다음 내용을 입력하고 저장하세요.htaccess,也不支持.htaccess语法,这里需要做一个投机取巧的方法:在.htaccess中写上nginx的语法,同时把该文件引入到nginx的配置中。这样就达到了和apache同样的目的。编辑.htaccess文件,输入以下内容并保存

if (!-e $request_filename){
    rewrite ^(.*)$ /index.php;
}
location ~ /.ht {
    deny  all;
}

【解释】nginx匹配失败的uri全都转给index.php,同时禁止访问.htaccess文件

最重要的一步:在nginx配置中,在server{}

include E:/demo/.htaccess;

[설명] nginx와 일치하지 않는 모든 URI는 index.php로 전송되며, .htaccess 파일에 대한 접근이 금지됩니다.

가장 중요한 단계: nginx 구성에서 서버에 문장 추가{}:

<?php
    //路由
    $uri = $_SERVER[&#39;REQUEST_URI&#39;]; //获取uri,例如 http://www.abc.com/study,其uri="/study"
    switch($uri){
        case "/":      include "template/home.php";  break;
        case "/study": include "template/study.php"; break;
        case "/play":  include "template/play.php";  break;
    }
编写/template/下的网页文件
/template/下存放的网页文件,随便编辑点html用于测试。例如 home.php
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>这里是home</title>
</head>
<body>
    <h1>你好,这里是home页面</h1>
</body>
</html>
[설명] 이 파일을 nginx 구성에 그대로 도입합니다. 절대 경로를 사용하는 것에 주의하세요!

2. index.php 경로 작성

루트 디렉터리에 있는 index.php를 열고 다음 내용을 입력하세요

rrreee

Effect

브라우저에서 http://localhost:8000을 방문하시면 /template/home에 접속하실 수 있습니다. .php

브라우저에서 http://localhost:8000/study에 접속하면 /template/study.php

브라우저에서 http://localhost:8000/play에 접속하면 /template/play에 접속할 수 있습니다. .php
관련 무료 학습 권장사항:

php 프로그래밍
(동영상)🎜🎜🎜

위 내용은 PHP에서 페이지 라우팅 및 전달을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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