Yii2框架URL美化教程

Yii2.0默認的訪問形式爲:php

http://www.xxx.com/index.php?r=post/index&id=100

通常咱們都會考慮將其美化一下,變成以下的形式:html

http://www.xxx.com/post/100.html

接下來就是美化的步驟nginx

1、配置http服務器

一、Apache

在入口文件(index.php)所在的目錄下新建一個文本文件,接着另存爲.htaccess,用編輯器打開此文件加入:web

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

保存便可數組

二、Nginx

在nginx配置文件(我本地是/conf/vhosts/test.conf文件)中加入:瀏覽器

location/{
    try_files $uri $uri/ /index.php?$query_string;
}

整個server配置相似:服務器

server {
        listen80;
        server_name  test.yii.com;

        root "/Projects/yii/web";
        location / {
            index  index.html index.htm index.php;
            try_files $uri $uri/ /index.php?$query_string;
        }

        error_page /50x.html;
        location = /50x.html {
            root   html;
        }

        location~ \.php(.*)$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info ^((?U).+\.php)(/?.*)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
    }

2、配置yii

打開config目錄下的web.php,在$config = [ 'components'=>[] ]中加入如下內容:yii

'urlManager' => [
    //開啓url美化
    'enablePrettyUrl' => true,
    //隱藏index.php
    'showScriptName' => false,
    //禁用嚴格匹配模式
    'enableStrictParsing' => false,
    //url後綴名稱
    'suffix'=>'.html',
    //url規則
    'rules' => [
        //post後面跟上數字的url,則將數字賦給id參數,而後傳遞給 post/view,實際上訪問的是 post/view?id=XXX
        'post/<id:\d+>'=>'post/view'
    ]
],

rules數組中配置具體的路由規則編輯器

3、重啓http服務器

至此,配置完畢。post

注意事項

http服務器中配置的虛擬域名必須直接指向入口文件所在目錄,不然在url省略index.php的狀況下,http服務器沒法正確訪問到項目。

舉個例子:

配置test.yii.com虛擬域名指向了/Projects/yii/web目錄,而你的項目入口文件實際上是在/Projects/yii/web/test目錄

瀏覽器訪問項目的url是:

http://test.yii.com/test/index.php?r=post/view&id=100

這時你把url換成

http://test.yii.com/test/post/100.html

是行不通的

相關文章
相關標籤/搜索