찾다
PHP 프레임워크ThinkPHPthinkphp의 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으로 문의하시기 바랍니다. 삭제
ThinkPhp의 내장 테스트 프레임 워크의 주요 기능은 무엇입니까?ThinkPhp의 내장 테스트 프레임 워크의 주요 기능은 무엇입니까?Mar 18, 2025 pm 05:01 PM

이 기사는 ThinkPhp의 내장 테스트 프레임 워크에 대해 논의하여 장치 및 통합 테스트와 같은 주요 기능과 조기 버그 감지 및 개선 된 코드 품질을 통해 응용 프로그램 신뢰성을 향상시키는 방법을 강조합니다.

실시간 주식 시장 데이터 피드 구축에 ThinkPhp를 사용하는 방법은 무엇입니까?실시간 주식 시장 데이터 피드 구축에 ThinkPhp를 사용하는 방법은 무엇입니까?Mar 18, 2025 pm 04:57 PM

기사는 실시간 주식 시장 데이터 피드에 ThinkPHP를 사용하여 설정, 데이터 정확도, 최적화 및 보안 측정에 중점을 둡니다.

서버리스 아키텍처에서 ThinkPhp를 사용하는 데있어 주요 고려 사항은 무엇입니까?서버리스 아키텍처에서 ThinkPhp를 사용하는 데있어 주요 고려 사항은 무엇입니까?Mar 18, 2025 pm 04:54 PM

이 기사는 서버리스 아키텍처에서 ThinkPHP를 사용하기위한 주요 고려 사항에 대해 설명하고 성능 최적화, 무국적 설계 및 보안에 중점을 둡니다. 비용 효율성 및 확장 성과 같은 혜택을 강조하고 도전 과제를 해결합니다.

ThinkPHP 마이크로 서비스에서 서비스 검색 및로드 밸런싱을 구현하는 방법은 무엇입니까?ThinkPHP 마이크로 서비스에서 서비스 검색 및로드 밸런싱을 구현하는 방법은 무엇입니까?Mar 18, 2025 pm 04:51 PM

이 기사에서는 ThinkPHP 마이크로 서비스에서 서비스 검색 및로드 밸런싱 구현, 설정, 모범 사례, 통합 방법 및 권장 도구에 중점을 둡니다. [159 문자]

ThinkPhp의 종속성 주입 컨테이너의 고급 기능은 무엇입니까?ThinkPhp의 종속성 주입 컨테이너의 고급 기능은 무엇입니까?Mar 18, 2025 pm 04:50 PM

ThinkPhp의 IOC 컨테이너는 PHP apps.character 수 : 159의 효율적인 종속성 관리를위한 게으른 하중, 맥락 바인딩 및 메소드 주입과 같은 고급 기능을 제공합니다.

실시간 협업 도구를 구축하는 데 ThinkPhp를 사용하는 방법은 무엇입니까?실시간 협업 도구를 구축하는 데 ThinkPhp를 사용하는 방법은 무엇입니까?Mar 18, 2025 pm 04:49 PM

이 기사는 ThinkPhp를 사용하여 실시간 협업 도구를 구축하고 설정, WebSocket 통합 및 보안 모범 사례에 중점을 둡니다.

SaaS 애플리케이션 구축에 ThinkPhp를 사용하면 어떤 주요 이점이 있습니까?SaaS 애플리케이션 구축에 ThinkPhp를 사용하면 어떤 주요 이점이 있습니까?Mar 18, 2025 pm 04:46 PM

ThinkPhp는 가벼운 디자인, MVC 아키텍처 및 확장 성을 통해 SaaS 앱에 혜택을줍니다. 다양한 기능을 통해 확장 성을 향상시키고 개발 속도를 높이며 보안을 향상시킵니다.

ThinkPHP 및 RabbitMQ로 분산 작업 대기열 시스템을 구축하는 방법은 무엇입니까?ThinkPHP 및 RabbitMQ로 분산 작업 대기열 시스템을 구축하는 방법은 무엇입니까?Mar 18, 2025 pm 04:45 PM

이 기사는 설치, 구성, 작업 관리 및 확장성에 중점을 둔 ThinkPhp 및 RabbitMQ를 사용하여 분산 작업 큐 시스템을 구축합니다. 주요 문제는 고 가용성 보장, 손상과 같은 일반적인 함정을 피하는 것입니다.

See all articles

핫 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를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기