YII URL 위 정적 방법 열기 (yii 에서 url Manager 일치 와 주의 점)

4536 단어 PHP 프레임 워 크
Yii 고성능 PHP 프레임 워 크 Yii 프레임 워 크 는 구성 요 소 를 기반 으로 대형 웹 애플 리 케 이 션 개발 에 사용 되 는 고성능 PHP 프레임 워 크 입 니 다.Yii 는 오늘 웹 2.0 응용 개발 에 필요 한 거의 모든 기능 을 제공 합 니 다.Yii 는 가장 효율 적 인 PHP 프레임 워 크 중 하나 입 니 다.Yii 는 창업 자 설 강의 심혈 을 기울 인 결정 으로 2008 년 1 월 1 일부 터 개발 을 시작 했다.
본 고 는 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 를 예 로 들 어 관심 이 있 는 학생 들 이 참고 하도록 설명 한다.

좋은 웹페이지 즐겨찾기