> 백엔드 개발 > PHP 튜토리얼 > ThinkPHP에서 대문자와 소문자 URL 주소를 지원하도록 만드는 방법 access_php 예제

ThinkPHP에서 대문자와 소문자 URL 주소를 지원하도록 만드는 방법 access_php 예제

WBOY
풀어 주다: 2016-05-16 20:33:34
원래의
1018명이 탐색했습니다.

이 기사의 예에서는 thinkphp를 활성화하여 대문자 및 소문자 URL 주소 액세스를 지원하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.

일반적으로 ThinkPHP는 기본적으로 대문자와 소문자를 구분합니다. 이는 Linux 시스템과 동일합니다. 그러나 소문자 URL은 두 가지 다른 이름을 가지고 있습니다. 그러나 우리는 Windows를 사용하여 대문자와 소문자 URL을 동일하게 취급합니다. 문제를 해결하는 방법을 살펴보겠습니다.

thinkphp의 대소문자 인식 기능이 설정 파일에 켜져 있어서 대문자, 소문자 모두 링크에 정상적으로 접근이 가능합니다:
'URL_CASE_INSENSITIVE' =>참
파일 이름 지정이 표준화되어 있지만 현재 URL 경로를 얻기 위해 템플릿에서 __URL__을 사용하면 URL을 올바르게 얻지 못합니다.
설명서에는 다음과 같이 나와 있습니다.
여기서 주목해야 할 점은 UserTypeAction의 모듈 클래스를 정의하는 경우 URL 액세스는 다음과 같아야 한다는 것입니다.
http://서버이름/index.php/user_type/list

대신 http://서버이름/index.php/usertype/list
템플릿에서 __URL__을 사용하여 얻은 링크는 밑줄 없이 여전히 아래 링크입니다.
이 문제는 인터넷에서 많은 사람들에 의해 보고되었습니다. 한 가지 해결책은 tp의 소스 코드를 수정하는 것입니다.
tp의 Lib 폴더에 있는 Core 폴더 아래 Dispatcher.class.php 파일에서 __URL__의 주소 획득 방법이 정의되어 있는 181행을 찾습니다.

코드 복사 코드는 다음과 같습니다.
$moduleName = 정의('MODULE_ALIAS')?MODULE_ALIAS: MODULE_NAME;
if(정의됨('GROUP_NAME')) {
Define('__URL__',!empty($domainModule)?__GROUP__.$depr : __GROUP__.$depr.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName ) );
}그밖에{
Define('__URL__',!empty($domainModule)?__APP__.'/' : __APP__.'/'.( C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName) );
}

코드를 복사하면 다음과 같습니다. C('URL_CASE_INSENSITIVE') ? strtolower($moduleName) : $moduleName )이 다음으로 변경되었습니다.

코드 복사 코드는 다음과 같습니다.C('URL_CASE_INSENSITIVE')?parse_name($moduleName,0): $모듈이름
이 문제는 해결되었습니다!
이 글이 모든 분들의 ThinkPHP 프레임워크 프로그래밍에 도움이 되기를 바랍니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿