簡體   English   中英

Yii2:從URL中刪除控制器

[英]Yii2: Remove controller from URL

我正在使用高級模板。 我在SiteController上創建了我的所有操作,因此我的所有網址都是domain.com/site/something,我需要從網址中刪除“網站”一詞,因此它將是domain.com/something。

我根據這個問題嘗試了以下規則

'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'showScriptName' => false,
        'enablePrettyUrl' => true,
        'rules' => array(
                '/<action:\w+>/<id:\d+>' => 'site/<action>',
                '/<action:\w+>' => 'site/<action>',
                '/noticia/<slug>' => 'site/noticia',
        ),
    ],

也基於這個問題嘗試了這個:

'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'showScriptName' => false,
        'enablePrettyUrl' => true,
        'baseUrl' => 'http://localhost/websites/transcita/app/frontend/web',
        'rules' => array(
                [
                    'pattern' => '<action:\w+>',
                    'route' => 'site/<action>'
                 ],
                [
                    'pattern' => '<action:\w+>/<id:\d+>',
                    'route' => 'site/<action>'
                 ],
                '/noticia/<slug>' => 'site/noticia',
        ),
    ],

但兩者都不起作用。 當我輸入domain.com/something時,我得到404。 我也試過沒有第一個/它也沒有工作。

有什么想法嗎?

試試:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => false,
    'rules' => [

        // ...

        // last rule
        '<action:(.*)>' => 'site/<action>',
    ],
], 

其他方式:

'rules' => [
    '<alias:\w+>' => 'site/<alias>',
],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM