>PHP 프레임워크 >YII >Yii 프레임워크의 라우팅 구성: URL 미화

Yii 프레임워크의 라우팅 구성: URL 미화

WBOY
WBOY원래의
2023-06-21 15:59:001278검색

인터넷의 급속한 발전으로 사람들의 웹사이트 사용 경험이 점점 더 좋아지고 있습니다. 그 중 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,建议设置为trueshowScriptName表示在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' => ''

2. 정적 라우팅

정적 라우팅은 특정 URL 주소가 컨트롤러 및 메서드에 직접 매핑될 수 있음을 의미합니다. 예를 들어, 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.