인터넷의 급속한 발전으로 사람들의 웹사이트 사용 경험이 점점 더 좋아지고 있습니다. 그 중 URL의 형태는 점차 사용자가 웹사이트의 품질을 판단하는 중요한 요소가 되었습니다. URL 미화를 위해 Yii 프레임워크는 다양한 라우팅 구성 솔루션을 제공합니다. 이 문서에서는 Yii 프레임워크의 라우팅 구성과 URL 미화 구현 방법에 중점을 둘 것입니다.
1. 라우팅 구성의 기본
라우팅은 요청의 특정 처리를 달성하기 위해 요청된 URL 주소를 특정 컨트롤러 및 메서드에 매핑하는 것을 의미합니다. Yii 프레임워크에서는 URL 관리자(UrlManager)를 통해 라우팅 구성이 완료됩니다. URL 관리자는 다음과 같이 애플리케이션의 구성 파일 config 폴더에 있습니다.
'components' => [ 'urlManager' => [ 'class' => 'yiiwebUrlManager', 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ // ... ], ], ],
그 중 enablePrettyUrl
은 미화된 URL을 활성화할지 여부를 나타냅니다. true
로 설정하는 것이 좋습니다. >; showScriptName
은 URL에 스크립트 파일 이름(예: index.php)을 표시할지 여부를 나타냅니다. 또한 아름다움에 영향을 주지 않도록 false
로 설정하는 것이 좋습니다. URL의. enablePrettyUrl
表示是否启用美化后的URL,建议设置为true
;showScriptName
表示在URL中是否显示脚本文件名(如index.php),也建议设置为false
,以免影响URL的美观度。
二、静态路由
静态路由是指可以将某个特定的URL地址直接映射到控制器和方法上。例如,我们可以将index.php?r=site/about
这样的URL地址静态化为about
,访问时直接输入http://yourdomain.com/about
即可。
在Yii框架中,实现静态路由的方法如下:
'rules' => [ 'about' => 'site/about', ],
这里的about
表示映射的URL地址,site/about
则表示具体的控制器和方法。
三、动态路由
动态路由是指将带有参数的URL地址映射到控制器和方法上,并通过参数传递数据。例如,我们可以将index.php?r=site/view&id=1
这样的URL地址动态化为view/1
,访问时直接输入http://yourdomain.com/view/1
即可。
在Yii框架中,实现动态路由的方法如下:
'rules' => [ 'view/<id:d+>' => 'site/view', ],
这里的view/3493f3358a126a26f38915ea72d0923c
表示映射的URL地址,其中id
是参数名,d+
是匹配数字的正则表达式,site/view
则表示具体的控制器和方法。
四、高级路由
高级路由是对静态和动态路由的扩展,可以实现更加复杂的URL映射。例如,我们可以将index.php?r=user/profile
这样的URL地址转化为profile/username
,访问时直接输入http://yourdomain.com/profile/admin
即可。
在Yii框架中,实现高级路由的方法如下:
'rules' => [ [ 'class' => 'yiiwebUrlRule', 'pattern' => 'profile/<username:w+>', 'route' => 'user/profile', 'suffix' => '', ], ],
这里的'class' => 'yiiwebUrlRule'
表示我们采用的是高级路由,'pattern' => 'profile/3b95aa1ce85f471b227ef3723047aeb2'
表示URL地址的匹配规则,其中3b95aa1ce85f471b227ef3723047aeb2
表示参数名和正则表达式,'route' => 'user/profile'
表示具体的控制器和方法,'suffix' => ''
index.php?r=site/about
과 같은 URL 주소를 about
으로 정적으로 변환하고, 다음과 같은 경우에는 http://yourdomain을 직접 입력할 수 있습니다. com/about
에 접속 중입니다. Yii 프레임워크에서 정적 라우팅을 구현하는 방법은 다음과 같습니다. 🎜rrreee🎜about
여기서는 매핑된 URL 주소를 나타내고 site/about
은 특정 컨트롤러를 나타냅니다. 그리고 방법. 🎜🎜3. 동적 라우팅 🎜🎜동적 라우팅은 매개변수가 있는 URL 주소를 컨트롤러 및 메소드에 매핑하고 매개변수를 통해 데이터를 전달하는 것을 말합니다. 예를 들어 index.php?r=site/view&id=1
와 같은 URL 주소를 view/1
로 동적으로 변환하고, 다음과 같은 경우에는 http를 직접 입력할 수 있습니다. 액세스: //yourdomain.com/view/1
끝입니다. 🎜🎜Yii 프레임워크에서 동적 라우팅을 구현하는 방법은 다음과 같습니다. 🎜rrreee🎜여기서 view/3493f3358a126a26f38915ea72d0923c
는 매핑된 URL 주소를 나타내며, 여기서 id는
는 매개변수 이름이고, d+
는 숫자와 일치하는 정규식이며, site/view
는 특정 컨트롤러 및 메소드를 나타냅니다. 🎜🎜4. 고급 라우팅 🎜🎜고급 라우팅은 정적 및 동적 라우팅의 확장으로, 더 복잡한 URL 매핑을 달성할 수 있습니다. 예를 들어 index.php?r=user/profile
과 같은 URL 주소를 profile/username
으로 변환하고 http://yourdomain을 직접 입력할 수 있습니다. .com/profile/admin
에 접속할 때. 🎜🎜Yii 프레임워크에서 고급 라우팅을 구현하는 방법은 다음과 같습니다. 🎜rrreee🎜 여기서 'class' => 'yiiwebUrlRule'
는 고급 라우팅인 '를 사용한다는 의미입니다. 패턴' = > 'profile/3b95aa1ce85f471b227ef3723047aeb2'
는 URL 주소의 일치 규칙을 나타내며, 여기서 3b95aa1ce85f471b227ef3723047aeb2
는 매개변수 이름을 나타냅니다. 정규 표현식인 'route' => 'user/profile'
은 특정 컨트롤러와 메소드를 나타내고, 'suffix' => ''
는 끝에 있는 추가 문자를 나타냅니다. URL 주소. 🎜🎜요약🎜🎜위의 소개를 통해 Yii 프레임워크에서 라우팅 구성의 기본 방법과 차이점을 이해할 수 있습니다. 그러나 라우팅을 구성할 때 URL 주소의 아름다움과 가독성에 주의를 기울여야 하며 기본 컨트롤러 및 메서드에 대해서도 잘 배치해야 합니다. 두 측면 사이의 균형을 달성해야만 웹 사이트의 URL 주소가 다양한 시나리오의 특정 컨트롤러 및 메서드에 더 잘 매핑되어 웹 사이트 경험을 향상시킬 수 있습니다. 🎜위 내용은 Yii 프레임워크의 라우팅 구성: URL 미화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!