YII URL 위 정적 방법 열기 (yii 에서 url Manager 일치 와 주의 점)
4536 단어 PHP 프레임 워 크
본 고 는 YII 가 URL 의 위 정적 방법 을 열 고 서버 는 apache 와 nginx 를 예 로 들 어 관심 이 있 는 학생 들 이 참고 하도록 설명 한다.
yii 에서 url 위 정적 을 열 려 면 세 곳 을 설정 해 야 합 니 다.
1, apache 오픈 modrewrite 모듈 (또는 nginx)
2, yii 에서 url 재 작성 기능 열기 설정
3. apache 의 새로운 규칙 설정
이제 각 부분 을 어떻게 다 루 는 지 얘 기해 볼 게 요.
1. apache 의 mod 열기rewrite 모듈
LoadModule rewrite 제거module modules/mod_rewrite. so 앞의 "\ #" 기호
"AllowOverride All" 이 있 는 지 확인 하 십시오.
2. yii 의 url 재 작성 기능 설정
프로젝트 에 있 는 / protected / config / main. php 에 코드 를 추가 합 니 다.
// application components
'components'=>array(
// uncomment the following to enable URLs in path-format
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'urlSuffix'=>'.html',
'rules'=>array(
'lists/_'=>'article/lists',
'lists/'=>'article/lists',
),
),
위 열 에는 list / 12. html 라 는 콘 텐 츠 목록 의 url 은 article / lists 라 는 제어 에 해석 되 었 습 니 다. 이 부분 도 가장 중요 한 설정 이 좋 지 않 으 면 사용 할 수 없습니다. 우 리 는 지금 중점적으로 설명 하 겠 습 니 다. 주요 설정 은 세 가지 가 있 습 니 다.
1, showScriptName index. php 를 숨 길 지 여 부 를 결정 하 는 것 입 니 다. 숨 기 면 false 를 사용 합 니 다.
2. url Suffix 는 위 정적 접미사 이름 을 설정 하 는 데 사 용 됩 니 다. 이것 은 사이트 디 렉 터 리 규칙 에 달 려 있 습 니 다. 어떤 것 은 / xx / xx. html 이 고 어떤 것 은 / xx / xx / xx / xx /
3. rules 라 는 가장 중요 한 것 은 apache 의 새로운 규칙 을 대체 하 는 것 입 니 다. 그의 형식 은 url 형식 = > 가리 키 는 컨트롤 러 입 니 다.
예 를 들 어 저 는 / about. html 를 site / about 컨트롤 러 에 가리 키 려 고 합 니 다. 그러면:
'about'=>'site/about',
예 를 들 어 저 는 / article / 2015 / 123. html 를 article / view 컨트롤 러 에 가리 키 려 고 합 니 다. 그러면:
'article//'=>'article/view',
이 year 와 id 를 주의 하 십시오. 이 두 값 은 함부로 쓴 것 이 아 닙 니 다. 이 두 매개 변 수 는 article / view 제어 에서 받 은 변수 이름과 같 아야 합 니 다. 그렇지 않 으 면 그 가 해석 할 수 없습니다.
3. apache 의 htaccess 파일 을 index. php 파일 과 같은 등급 의 디 렉 터 리 에 파일 "htaccess" 를 추가 하도록 설정 합 니 다. 내용 은 다음 과 같 습 니 다.
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
4. nginx 의 url 재 작성 규칙 설정
location / {
root /home//webroot;
index index.html index.php index.htm;
#try_files $uri $uri/ @rewrite;
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
location ~ \.php$ {
root /home/webroot;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/webroot$fastcgi_script_name;
include fastcgi_params;
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
* * 그리고 여러 개의 인자 가 있 을 때 일치 하 는 rules 문제 (위 에서 아래로 일치) * * 에 주의해 야 합 니 다.
예:
앞의 세 줄 은 순 서 를 주의 하 세 요. 그렇지 않 으 면 오류 가 발생 합 니 다. 참고 사이트 주소 참조
'oil//'=>'article/detail',
'oil/'=>'article/detail',
''=>'site/',
'/'=>'/view',
'//'=>'/',
'/'=>'/',
참고 주소:
1. 기초:http://www.yiiframework.com/doc/guide/1.1/zh_cn/topics.
url#sec-3
2. 주의 인자:http://xueguang668.blog.163.com/blog/static/9772212220129112426211/
3. 정규 표현 식:
http://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.80).aspx
4. 본문:http://www.phperz.com/article/15/0125/48271.html
본 고 는 YII 가 URL 의 위 정적 방법 을 열 고 서버 는 apache 와 nginx 를 예 로 들 어 관심 이 있 는 학생 들 이 참고 하도록 설명 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PHP_cake PHP 프레임 시작 MVC 이전의 전속 cake PHP 의 약속4.567917.컨트롤 러 의 첫 번 째 방법 은 index()방법 일 수 있다.컨트롤 러 를 지정 해 달라 고 요 청 했 지만 방법 이 지정 되 지 않 았 을 때 CakePHP 는 컨트롤 러 의 index()방법 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.