1. URL 재작성, URL에 Index.php 숨기기.
ThinkPHP는 PHP 프레임워크로서 단일 진입점을 가지므로 원래 URL이 그다지 친숙하지 않습니다. 그러나 ThinkPHP는 필요한 URL 형식을 사용자 정의하는 다양한 메커니즘을 제공합니다. Apache .htaccess 파일을 사용하면 SEO에 더 도움이 되는 사용자 친화적인 URL 주소를 사용자 정의하는 것이 가능합니다.
.htaccess 파일은 Apache 서버의 구성 파일로, 관련 디렉터리의 웹페이지 구성을 담당합니다. .htaccess 파일의 다시 쓰기 규칙을 사용하여 ThinkPHP URL에서 index.php 파일(즉, 항목 파일)을 숨길 수 있습니다. 이는 의사 정적 ThinkPHP URL의 첫 번째 단계이기도 합니다.
예를 들어 원래 URL은 다음과 같습니다.
http://www.baidu.com/index.php/Index/insert
index.php를 제거하면 다음과 같이 됩니다.
http://www.baidu.com/Index/insert
이렇게 하면 http://웹페이지 주소/애플리케이션 모듈 이름/작업 이름[/변수 매개변수]의 공통 URL 형식이 됩니다.
Apache httpd.conf 구성 파일 변경
1. mod_rewrite.so 로드
mod_rewrite.so 모듈이 로드되었는지 확인합니다(다음 구성 앞의 # 제거).
LoadModule rewrite_module 모듈/mod_rewrite.so
2. AllowOverride 구성 변경
.htaccess 파일을 읽어야 하는 디렉토리를 변경하고 원래 디렉토리를 주석 처리합니다.
#<디렉터리 'C:/Program Files/ApacheGroup/Apache2/htdocs'>
<디렉토리 E:/html/myapp>
AllowOverride 없음을 AllowOverride FileInfo 옵션으로 변경합니다.
변경된 구성은 다음과 같습니다.
#<디렉터리 'C:/Program Files/ApacheGroup/Apache2/htdocs'>
<디렉토리E:/html/myapp>
파일 정보 옵션 무시
디렉토리>
.htaccess는 디렉터리를 기준으로 제어됩니다.
3. .htaccess 파일 추가 규칙 다시 작성
index.php를 숨겨야 하는 디렉터리에 .htaccess 파일을 생성하고, 다음 규칙 코드를 작성하세요.
RewriteEngine 켜짐
#index.php를 표시하지 않음
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
4. 프로젝트 구성 파일 변경
프로젝트 구성 파일 Conf/config.php를 편집하고 URL 모드를 2(다시 쓰기 모드)로 구성합니다.
'URL_MODEL'=>2,
이제 모든 구성이 완료되었습니다. 각 구성 파일을 저장한 후 Apache 서버를 다시 시작하고 런타임 디렉터리에서 프로젝트 캐시 파일을 삭제합니다. 브라우저에서 숨겨진 index.php 뒤에 있는 주소에 액세스하여 성공 여부를 테스트합니다.
http://www.baidu.com/html/myapp/Index/index
액세스에 성공하면 Apache .htaccess 파일의 다시 쓰기 규칙을 사용하여 index.php 항목 파일의 구성을 숨기는 데 성공합니다.
2. URL 길이를 줄이도록 라우팅을 구성합니다.
공통 구성 파일에 다음 코드를 추가하세요
<span style="color: #008000">//</span><span style="color: #008000">开启路由器</span> 'URL_MODEL' => 2, 'URL_ROUTER_ON' => <span style="color: #0000ff">true</span>, 'URL_ROUTE_RULES' => <span style="color: #0000ff">array</span><span style="color: #000000">( </span>'index' => "Home/Index/index", 'test' => "Home/Index/test", <br> <span style="color: #008000">//</span><span style="color: #008000">URL/test.html<br><br> '/^C_(\d+)$/' => 'Index/index/user?id=:1'<br> //短链接:http://localhost/index.php/C_9</span> <span style="color: #000000"> )</span>,
3. 유사 정적, URL에 .html 접미사 추가
ThinkPHP는 의사 정적 URL 설정을 지원하며 필요한 URL 접미사를 설정할 수 있습니다. 프로젝트 구성 파일 Conf/config.php를 편집하고
URL_HTML_SUFFIX 매개변수를 다음과 같이 구성합니다.
'URL_HTML_SUFFIX' => '.html',
런타임 디렉터리에서 프로젝트 캐시 파일을 삭제하여 구성을 효과적으로 만듭니다. 마지막으로 브라우저에서 다음 주소에 액세스하면 효과는 동일합니다.
http://127.0.0.1/html/myapp/index.php/Index/index
http: //127.0.0.1/html/ myapp/index.php/Index/index.shtml
매개변수 구성에서 다른 필수 접미사도 구성할 수 있습니다. 접미사 설정에는 .
Pseudo-static을 설정한 후, 어디에서나 URL의 일관성을 유지하려면 U 메소드를 사용하여 템플릿에서 자동으로 URL을 생성하는 것이 좋습니다. 자세한 내용은 "URL 자동 생성을 위한 ThinkPHP U 메소드"를 참조하세요.
팁:
ThinkPHP pseudo-static에는 오해하기 쉬운 측면이 있습니다. pseudo-static을 구성한 후 시스템이 자동으로 xxx.html과 같은 URL을 생성합니다. 실제 상황은 그렇지 않지만 위에서 언급한 것처럼 pseudo-static을 구성한 후 .html과 같은 접미사가 있는지 여부는 접미사가 없는 URL에 액세스하는 것과 동일한 효과를 갖습니다. 따라서 의사 정적을 사용하는 경우 정적 접미사를 수동으로 추가하거나 ThinkPHP U 메서드를 사용하여 접미사가 포함된 URL 주소를 자동으로 생성할 수만 있습니다. 여기서는 물론 U 메소드를 사용하여 의사 정적 주소로 URL 형식을 자동으로 생성하는 것이 좋습니다.