我在 Yii2 应用程序上启用了干净的 URL,但我似乎无法获得传递给操作的参数。
我期待这个:
localhost/app/web/a/b/c/d
要映射到以下内容:
AController->actionB($c, $d)
它没有发生。
这是我的.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
我的 web.php 的相关部分:
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
最佳答案
据我了解,规则应该是这样的:
'<controller:\w+>/<action:\w+>/<c>/<d>' => '<controller>/<action>'
因此,如果您尝试访问
localhost/app/web/a/b/c/d
, Yii 将调用:class AController extends Controller
{
public function actionB($c, $d)
{
}
}
关于Yii2 清理 URL 和操作参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854384/