PHP 프레임워크 ThinkPHP thinkphp의 4가지 URL 모드 소개

thinkphp의 4가지 URL 모드 소개

May 05, 2020 am 09:10 AM
thinkphp

thinkphp의 4가지 URL 모드 소개

라우팅: 프로젝트의 특정 메소드의 URL 주소에 액세스합니다. 간단히 이해하면 URL 주소입니다.

ThinkPHP에서는 시스템이 4가지 라우팅 양식을 제공합니다(이전 라우팅 양식: index.php?p=Platform&c= 제어 장치 & a = 메소드;

요약: thinkPHP의 mca는 그룹, 컨트롤러, 메소드

②Pathinfo 양식 라우팅

4 호환 가능한 양식 라우팅

자세한 설명은 아래에 있습니다

(1) 일반 양식 라우팅

또한 get 양식 라우팅이라고도 하며 모든 정보는 get을 통해 전달됩니다

라우팅 양식: http://website/entry 파일(index.php) ?m =Group&c=컨트롤러 이름&a=메소드&매개변수 이름=매개변수 값

예: 홈 그룹 아래 사용자 컨트롤러의 테스트 메소드에 액세스하고 매개변수 id=1

http://www.1336을 전달합니다. .php?m=Home&c=User&a=test&id=1

$_GET['id']를 통해 확인할 수 있으며 출력 1. 그럼 인증 성공

단점: URL을 통해 전달되는 모든 내용이 표시되므로 안전하지도 않고 보기에도 좋지 않습니다. 그래서 많이 사용되지는 않습니다

(2) pathinfo() 형태의 라우팅 (thinkPHP의 기본 라우팅)

라우팅 형태 : http://website/entry file (index.php)/group name/controller name/method/parameters Name 1/매개변수 값 1/매개변수 이름 n/매개변수 값 n

http://www.1336.com/index.php/Home/User/test/id/100

$_GET['id'가 있습니다. 방법], 100을 출력합니다. 그럼 검증 성공

(3) 라우팅 폼 재작성(rewrite)

라우팅 폼 : http://url/그룹명/컨트롤러명/메소드명/파라미터 1/파라미터 값 1/파라미터 n/파라미터 값 n

thinkPHP의 기본 라우팅 형식 Pathinfo() 라우팅과의 차이점은 항목 파일이 없다는 것입니다

참고: 이 라우팅 형식은 직접 사용할 수 없으며 사용하기 전에 구성해야 합니다

구성 단계:

1. Apache httpd.conf, 확장 재작성 재작성 모듈을 활성화합니다.

2. Apache 디렉터리 conf/extra/httpd-vhosts에 있는 가상 호스트 구성 파일을 수정하고 구성 재작성을 허용합니다. 현재 사이트를 다시 작성할 수 있음을 나타냅니다

간단히 다시 작성해야 하는 사이트의 디렉터리 구성에 Allowoverride:all


#针对目录的详细配置
    <Directory>
        #允许所有访问
        allow from all
        #允许重写
        AllowOverride all
        #表示允许站点显示文件目录结构
        Options +indexes
    </Directory>
로그인 후 복사

를 추가합니다


3. Apache를 다시 시작합니다

4. ThinkPHP 압축 패키지의 htaccess 파일을 입력하여 항목 파일과 동일한 수준의 디렉터리를 입력하세요

구성이 완료된 후 확인을 위해 URL을 입력하세요. 항목 파일을 제거한 후 여기에도 위의 경로 정보의 URL이 사용됩니다. 새로고침하여 출력이 100임을 확인합니다. OK~구성 완료

확장:

PHP 작동 모드(5가지 주요 작동 모드):

CGI 모드(범용 게이트웨이 인터페이스)

FastCGI 모드(상주 CGI) ;

웹 모듈 모드(Apache 등 웹 서버가 실행되는 모드)

ISAPI 모드(버전 5.3 이후에는 지원되지 않음)

현재 사용되는 환경 통합 패키지의 모드는 웹 모듈 모드이며, FastCGI는 일반적으로 사용됩니다. 작업 개발 유형.

요약하자면 다시 쓰기 모드에는 Apache 지원이 필요하며 일반적으로 권장되지 않습니다. Apache 외에도 서버 소프트웨어에는 nginx, lightd 등이 포함됩니다.

(4) 호환 라우팅 형식

호환 라우팅 형식은 일반 라우팅 형식, 경로 정보 라우팅 형식 및 라우팅 형식 다시 쓰기의 기능을 결합합니다.

라우팅 형식: http://website/entry file?s=/group name/ 컨트롤러 이름/메소드 이름/매개변수 1/매개변수 값 1

참고: 호환되는 라우팅 형식에는 매개변수가 하나만 있습니다: 매개변수 이름 s, 나중에 s 매개변수 값으로 표시될 수 있음

예: http://www.1336 .com/index.php ?s=/Home/User/test/id/100, 확인 출력은 100으로 액세스가 성공했음을 나타냅니다.

(5) 확장: ThinkPHP의 라우팅 양식 구성

구성 파일 ThinkPHP /Conf/convention.php, ThinkPHP 기존 구성 파일

/* URL设置 */
&#39;URL_CASE_INSENSITIVE&#39;  =>  true,   // 默认false 表示URL区分大小写 true则表示不区分大小写
&#39;URL_MODEL&#39;             =>  1,
로그인 후 복사

URL 액세스 모드, 선택적 매개변수 0, 1, 2, 3, 다음 네 가지 모드를 나타냄:

0(일반 모드)

1(Pathinfo 모드);

2(REWRITE 모드);

3(호환성 모드) 기본값은 Pathinfo 모드입니다

참고: 라우팅 양식의 구성 값은 주소 표시줄에 입력된 다른 형태의 라우팅 액세스에 영향을 주지 않습니다. 이 구성 항목의 값은 ThinkPHP 시스템에 의해 캡슐화된 URL 어셈블리 함수(U 함수)에 의해 생성된 URL 주소의 형식에 영향을 미칩니다.

ThinkPHP는 일반 모드를 포함하여 URL_MODEL 매개변수를 설정하여 정의할 수 있는 4가지 URL 모드를 지원합니다. , PATHINFO, REWRITE 및 호환성 모드.

1. 일반 모드: 'URL_MODEL'=>0,

http://serverName/appName/?m=module&a=action&id=1
로그인 후 복사

2. PATHINFO 모드: 'URL_MODEL'=>1, (시스템 기본 모드)

기본적으로 URL_PATHINFO 모드를 사용하며 PATHINFO 모드에도 일반 모드가 포함되어 있습니다. 스마트 모드에는 두 가지 유형이 있습니다.

PATHINFO 일반 모드: 'PATH_MODEL'=>1,

이 모드의 URL 매개변수는 순서가 아닙니다. 예를 들어

http://serverName/appName/m/module/a/action/id/1
http://serverName/appName/a/action/id/1/m/module
로그인 후 복사

PATHINFO 스마트 모드: 'PATH_MODEL'=> 2, (시스템 기본 모드)

이 모드는 자동으로 모듈과 작업을 식별합니다. 예를 들어

http://serverName/appName/module/action/id/1/
http://serverName/appName/module,action,id,1/
로그인 후 복사

스마트 모드에서는 첫 번째 매개변수가 모듈 이름(또는 아래 설명된 경로 이름)으로 구문 분석되고 두 번째 매개변수는 작업으로 구문 분석됩니다(첫 번째 매개변수가 경로 이름이 아니라는 전제 하에) 다음 매개변수는 명시적으로 전달되며 쌍으로 표시되어야 합니다. 예:

http://serverName/appName/module/action/year/2000/month/01/day/01/
로그인 후 복사

其中参数之间的分割符由PATH_DEPR参数设置,默认为"/",若设置PATH_DEPR为"^",则:

http://serverName/appName/module^action^id^1/
로그인 후 복사

注意不要使用"@" 和"&"符号进行分割,该符号有特殊用途,可能会导致其他的冲突。

如果想要简化URL的形式可以通过路由功能(后面会有描述),在PATHINFO模式下,会把相关参数转换成GET变量,以及并入REQUEST变量,因此不妨碍应用里面的以上变量获取。

3、REWRITE模式:'URL_MODEL'=>2,

该URL模式和PATHINFO模式功能一样,除了可以不需要在URL里面写入口文件,和可以定义.htaccess 文件外。

例如,我们可以增加如下的.htaccess内容把所有操作都指向index.php文件。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
로그인 후 복사

4、兼容模式:'URL_MODEL'=>3

兼容模式是普通模式和PATHINFO模式的结合,并且可以让应用在需要的时候直接切换到PATHINFO模式而不需要更改模板和程序,基本上可以支持任何的运行环境。

只需要传入PATHINFO 兼容模式获取变量VAR_PATHINFO,默认值为s,例如

http://serverName/appName/?s=/module/action/id/1/
로그인 후 복사

会执行和上面的URL等效的操作,并且也可以支持参数分割符号的定义,例如在PATH_DEPR设置为"~"的情况下,下面的URL有效:

http://serverName/appName/?s=module~action~id~1
로그인 후 복사

兼容模式的情况下面模板文件不用做任何更改,保持和PATHINFO模式的写法一样,只需要在切换URL模式的时候清空下模板缓存目录。

推荐教程:《TP5

위 내용은 thinkphp의 4가지 URL 모드 소개의 상세 내용입니다. 자세한 내용은 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

thinkphp 프로젝트를 실행하는 방법 thinkphp 프로젝트를 실행하는 방법 Apr 09, 2024 pm 05:33 PM

ThinkPHP 프로젝트를 실행하려면 다음이 필요합니다: Composer를 설치하고, 프로젝트 디렉터리를 입력하고 php bin/console을 실행하고, 시작 페이지를 보려면 http://localhost:8000을 방문하세요.

thinkphp에는 여러 버전이 있습니다. thinkphp에는 여러 버전이 있습니다. Apr 09, 2024 pm 06:09 PM

ThinkPHP에는 다양한 PHP 버전용으로 설계된 여러 버전이 있습니다. 메이저 버전에는 3.2, 5.0, 5.1, 6.0이 포함되며, 마이너 버전은 버그를 수정하고 새로운 기능을 제공하는 데 사용됩니다. 최신 안정 버전은 ThinkPHP 6.0.16입니다. 버전을 선택할 때 PHP 버전, 기능 요구 사항 및 커뮤니티 지원을 고려하십시오. 최상의 성능과 지원을 위해서는 최신 안정 버전을 사용하는 것이 좋습니다.

thinkphp를 실행하는 방법 thinkphp를 실행하는 방법 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework를 로컬에서 실행하는 단계: ThinkPHP Framework를 로컬 디렉터리에 다운로드하고 압축을 풉니다. ThinkPHP 루트 디렉터리를 가리키는 가상 호스트(선택 사항)를 만듭니다. 데이터베이스 연결 매개변수를 구성합니다. 웹 서버를 시작합니다. ThinkPHP 애플리케이션을 초기화합니다. ThinkPHP 애플리케이션 URL에 접속하여 실행하세요.

laravel과 thinkphp 중 어느 것이 더 낫나요? laravel과 thinkphp 중 어느 것이 더 낫나요? Apr 09, 2024 pm 03:18 PM

Laravel과 ThinkPHP 프레임워크의 성능 비교: ThinkPHP는 일반적으로 최적화 및 캐싱에 중점을 두고 Laravel보다 성능이 좋습니다. Laravel은 잘 작동하지만 복잡한 애플리케이션의 경우 ThinkPHP가 더 적합할 수 있습니다.

개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법 개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법 Nov 22, 2023 pm 12:01 PM

"개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법" 인터넷 기술의 급속한 발전으로 인해 웹 응용 프로그램은 많은 수의 동시 요청과 복잡한 비즈니스 논리를 처리하기 위한 요구 사항이 점점 더 높아졌습니다. 시스템 성능과 사용자 경험을 향상시키기 위해 개발자는 이메일 보내기, 파일 업로드 처리, 보고서 생성 등과 같이 시간이 많이 걸리는 작업을 수행하기 위해 비동기 작업을 사용하는 것을 종종 고려합니다. PHP 분야에서 널리 사용되는 개발 프레임워크인 ThinkPHP 프레임워크는 비동기 작업을 구현하는 몇 가지 편리한 방법을 제공합니다.

thinkphp를 설치하는 방법 thinkphp를 설치하는 방법 Apr 09, 2024 pm 05:42 PM

ThinkPHP 설치 단계: PHP, Composer 및 MySQL 환경을 준비합니다. Composer를 사용하여 프로젝트를 만듭니다. ThinkPHP 프레임워크와 종속성을 설치합니다. 데이터베이스 연결을 구성합니다. 애플리케이션 코드를 생성합니다. 애플리케이션을 실행하고 http://localhost:8000을 방문하세요.

thinkphp 성능은 어떤가요? thinkphp 성능은 어떤가요? Apr 09, 2024 pm 05:24 PM

ThinkPHP는 캐싱 메커니즘, 코드 최적화, 병렬 처리 및 데이터베이스 최적화와 같은 장점을 갖춘 고성능 PHP 프레임워크입니다. 공식 성능 테스트에 따르면 초당 10,000개 이상의 요청을 처리할 수 있으며 JD.com, Ctrip과 같은 대규모 웹 사이트 및 엔터프라이즈 시스템에서 실제 응용 프로그램으로 널리 사용됩니다.

개발 제안: API 개발을 위해 ThinkPHP 프레임워크를 사용하는 방법 개발 제안: API 개발을 위해 ThinkPHP 프레임워크를 사용하는 방법 Nov 22, 2023 pm 05:18 PM

개발 제안: API 개발을 위해 ThinkPHP 프레임워크를 사용하는 방법 인터넷이 지속적으로 발전하면서 API(응용 프로그래밍 인터페이스)의 중요성이 점점 더 커지고 있습니다. API는 데이터 공유, 함수 호출 및 기타 작업을 실현할 수 있으며 개발자에게 비교적 간단하고 빠른 개발 방법을 제공합니다. 뛰어난 PHP 개발 프레임워크인 ThinkPHP 프레임워크는 효율적이고 확장 가능하며 사용하기 쉽습니다.

See all articles