• [yii2]urlmanger


    首先配置下nginx,确保可以不使用index.php来访问

    server{
        listen      8082;
        server_name yii2.dev;
        access_log logs/yii2.access.log;
        error_log logs/yii2.error.log error;
        root /home/admin/web/nginx/html/basic/web/;
        location / {
                index  index.html index.php;
                if (!-e $request_filename){
                    rewrite ^/(.*) /index.php?r=$1 last;
                }
        }

    APP中配置config

    'urlManager' => [
                'enablePrettyUrl' => true, 
                'enableStrictParsing' => false,
                'showScriptName' => false,
                'rules' => [
                    '<module:w+>/<controller:w+>/<id:d+>' => '<module>/<controller>/view',
                    '<controller:w+>/<id:d+>' => '<controller>/view',
                ],
            ]

    其中KEY的说明

    enablePrettyUrl
    Whether to enable pretty URLs. 
    Instead of putting all parameters in the query string part of a URL,
    pretty URLs allow using path info to represent some of the parameters and can thus produce more user-friendly URLs,
    such as "/news/Yii-is-released", instead of "/index.php?r=news/view&id=100".
    enableStrictParsing
    Whether to enable strict parsing. 
    If strict parsing is enabled, the incoming requested URL must match at least one of the $rules in order to be treated as a valid request.
    Otherwise, the path info part of the request will be treated as the requested route. This property is used only when $enablePrettyUrl is true.
    showScriptName
    Whether to show entry script name in the constructed URL. Defaults to true. This property is used only if $enablePrettyUrl is true.
    rules
    The rules for creating and parsing URLs when $enablePrettyUrl is true. This property is used only if $enablePrettyUrl is true.
    Each element in the array is the configuration array for creating a single URL rule.
    The configuration will be merged with $ruleConfig first before it is used for creating the rule object.
    enableStrictParsing,showScriptName,rules 要生效必须设置enablePrettyUrl=true.
    因此要使rules配置的规则生效,需要首先设置enablePrettyUrl=true.设置完成以后按照映射规则访问。
    http://yii2.dev:8082/admin/default/1 其中Module:admin controller:default action:view id:1 符合规则:'<module:w+>/<controller:w+>/<id:d+>' => '<module>/<controller>/view',



  • 相关阅读:
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
    第 6 章 Cinder
  • 原文地址:https://www.cnblogs.com/zaric/p/4030922.html
Copyright © 2020-2023  润新知