Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Yii2中配置urlManager规则_Php_Yii_Configuration_Yii2_Yii Url Manager - Fatal编程技术网

Php 在Yii2中配置urlManager规则

Php 在Yii2中配置urlManager规则,php,yii,configuration,yii2,yii-url-manager,Php,Yii,Configuration,Yii2,Yii Url Manager,我不熟悉使用Yii2,并且一直在使用urlManager,我有下面的代码,它工作得很好,但是我认为这应该更短。我有以下几条规则:- 'rules' => [ 'gifts/<subjectone:[\s\S]+>/<subjecttwo:[\s\S]+>' => 'gifts/index', 'gifts/<subjectone:[\s\S]+>/<subjecttwo:[\s\

我不熟悉使用Yii2,并且一直在使用urlManager,我有下面的代码,它工作得很好,但是我认为这应该更短。我有以下几条规则:-

    'rules' => [        
        'gifts/<subjectone:[\s\S]+>/<subjecttwo:[\s\S]+>' => 'gifts/index',
            'gifts/<subjectone:[\s\S]+>/<subjecttwo:[\s\S]+>/' => 'gifts/index',
            'gifts/<subjectone:[\s\S]+>' => 'gifts/index',
            'gifts/<subjectone:[\s\S]+>/' => 'gifts/index',
     ];
“规则”=>[
“礼品/”=>“礼品/索引”,
“礼品//”=>“礼品/索引”,
“礼品/”=>“礼品/索引”,
“礼品/”=>“礼品/索引”,
];
正如你所看到的,我已经添加了4条规则,所有这些规则都可以转到同一页面来处理不同的情况

我已经添加了两次相同的Url,一次使用
/
,一次不使用,以停止404。请提供更好的处理方法

您可以在规则末尾添加
+|(\/?)
。看一看:

 'gifts/<subjectone:[\s\S]+>+|(\/?)' => 'gifts/index',
“礼品/+|(\/?)”=>“礼品/索引”,

因此,没有必要写两次规则。

谢谢你的回答