thinkPHP5는 빠른 개발 방법과 풍부한 기능 구성 요소를 제공하는 뛰어난 PHP 개발 프레임워크이며, 그 중 URL 라우팅 기능은 중요한 기능 중 하나입니다. 그러나 기본적으로 경로에 액세스하려면 URL에 index.php를 추가해야 합니다. 아름다움과 보안을 위해 이번 글에서는 thinkPHP5에서 엔트리 파일을 숨기는 방법을 소개하겠습니다.
1. 환경 준비
URL 숨기기 작업이 원활하게 수행될 수 있도록 로컬 환경이 의사 정적 기능 및 URL 재작성 기능을 지원하는지 확인해야 합니다. 먼저 Apache 또는 Nginx와 같은 웹 서버가 설치되어 있는지 확인한 다음 구성 파일에서 의사 정적 및 URL 재작성 기능을 활성화하여 프레임워크가 아름다운 URL을 인식하고 생성할 수 있도록 해야 합니다.
2. URL 숨기기 켜기
thinkPHP5 구성 파일에서 app.php 파일을 찾아 url_html_suffix 구성 항목을 찾아 빈 문자열로 설정하세요.
'url_html_suffix' = > ''
접미사가 없는 URL을 허용합니다.
thinkphp5에서는 라우팅 규칙을 구성하여 액세스 URL을 컨트롤러 또는 작업 방법에 매핑할 수 있습니다. 숨겨진 효과가 발휘될 수 있도록 각 컨트롤러 또는 작동 방법에 해당하는 라우팅 설정을 지정하고 해당 URL을 의미 있는 콘텐츠에 매핑해야 합니다. 예:
Route::get('news /:id', 'index/index/news',[],['id'=>'d+']);
이렇게 하면 URL /news/1에 접근하면 index 컨트롤러가 자동으로 news 작업 메소드를 호출하고 요청 매개변수 ID를 1로 설정합니다.
해당 구성은 Apache 또는 Nginx에서도 수행되어야 합니다. Apache를 예로 들어 .htaccess에 다음 콘텐츠를 추가합니다.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s= / $1 [QSA,PT,L]
이 코드에서 RewriteEngine은 Apache의 URL 재작성 기능을 활성화합니다. RewriteCond %{REQUEST_FILENAME} !-d 및 RewriteCond %{REQUEST_FILENAME} !-f 방지를 위해 파일 및 디렉터리에 대한 액세스를 제외합니다. 정적 리소스에 대한 액세스에 영향을 미치며, 마지막으로 RewriteRule은 thinkPHP 항목 파일 index.php에 대한 URL을 가리키고 라우팅 정보를 가져오는 데 사용됩니다.
4. 추가 기능
애플리케이션을 더욱 보호하기 위해 URL 접미사를 설정하여 애플리케이션을 더욱 안전하게 만들 수 있습니다. 예를 들어 모든 URL 접미사를 .shtml, .html, .shtml 등으로 설정하면 애플리케이션에 대한 공격을 효과적으로 피할 수 있습니다.
구성 파일에서 url_html_suffix 옵션을 찾아 해당 접미사를 추가할 수 있습니다. 예:
'url_html_suffix' => 'shtml|html|htm'
Route를 사용할 수 있습니다. 프레임워크가 자동으로 URL을 식별할 수 있도록 클래스의 등록 메서드에 라우팅 규칙을 추가합니다. 예:
if (is_file(APP_PATH . 'route.php')) {
Route::get('/', 'index/index');
Route::get('build', 'index/build ' );
include_once APP_PATH . 'route.php';
}
이런 방식으로 규칙과 일치하는 URL이 있으면 자동으로 해당 컨트롤러나 액션 메서드로 전달됩니다.
3. 요약
위의 단계를 통해 thinkPHP5에서 URL 숨김 작업을 쉽게 구현할 수 있으며, 이를 통해 애플리케이션을 더욱 아름답고 안전하며 작동하기 쉽게 만들 수 있습니다. 그러나 실제 애플리케이션에서는 최상의 서비스 경험을 달성하기 위해 더 자세한 구성과 디버깅이 필요합니다.
위 내용은 thinkPHP5에서 항목 파일을 숨기는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!