Yii2 清理 URL 和操作参数

标签 yii2 clean-urls yii-url-manager

我在 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/

相关文章:

jquery - pjax成功后绑定(bind)日期选择器会导致无限循环

angular - 如何根据包含 Angular 哈希的 url 参数中的产品美化 URL

Yii2 Bootstrap 导航栏的标签 URL 没有干净的 URL

php - Yii 1 : UrlManager does not call the correct action in module controller

php - 在 Yii2 中配置 urlManager 规则

yii2 - 无法使用assets/registerCss函数注册css/js

php - 通过 ajax 请求时 Yii2 CKeditor 未初始化

mysql - 如何在 Yii2 中导入数据库、更新已更改的行、删除已删除的行

.htaccess - 使用 .htaccess 清理 URL