yii2 url优化问题

WBOY
リリース: 2016-06-06 20:20:34
オリジナル
1315 人が閲覧しました

想要对Url进行优化,全部变为路径模式

如:http://xxx.com/topic/index?id=1&type=1
转变为:http://xxx.com/topic/index/id/1/type/1

可以通过配置rules:
'//id//type/'=>'/'

但是如果我传得参数不一样,比如再加一些参数,或者参数名非type和id,就无法匹配这个rule,难道要针对每一中参数都配置一个rule吗?

想通过正则把参数写为或的形式,但是没能成功,不知道这个正则的写法和规则是怎么样的,有没有官方文档说明啊?

还有一种方式是重载urlManager类中的方法,感觉稍微复杂了一点,还没尝试,请大家指点迷津,给个思路?谢谢了!

回复内容:

想要对Url进行优化,全部变为路径模式

如:http://xxx.com/topic/index?id=1&type=1
转变为:http://xxx.com/topic/index/id/1/type/1

可以通过配置rules:
'//id//type/'=>'/'

但是如果我传得参数不一样,比如再加一些参数,或者参数名非type和id,就无法匹配这个rule,难道要针对每一中参数都配置一个rule吗?

想通过正则把参数写为或的形式,但是没能成功,不知道这个正则的写法和规则是怎么样的,有没有官方文档说明啊?

还有一种方式是重载urlManager类中的方法,感觉稍微复杂了一点,还没尝试,请大家指点迷津,给个思路?谢谢了!

直接把 UrlManager中这个参数配置成true

<code>   /**
     * 路由的路径化
     * 
     * @var bool
     */
    public $enablePrettyUrl = true;
</code>
ログイン後にコピー

第一:在配置文件加上 urlManager项,看代码:

<code> 'urlManager'=>[
    'class' => 'yii\web\UrlManager',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules'=>[
    '<controller:>/<id:>/<action:>' =>'<controller>/<action>',
    '<controller:>/<id:>' => '<controller>/read',
    '<controller:>s' => '<controller>/list',
         ],
     ],</controller></controller:></controller></id:></controller:></action></controller></action:></id:></controller:></code>
ログイン後にコピー

第二,在index.php同级目录下新建.htaccess文件,把下面的代码贴上:

<code>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</code>
ログイン後にコピー

原文地址:http://www.yiichina.com/tutorial/622

或者参考这个:http://www.cnblogs.com/dcb3688/p/4607968.html

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート