我正在使用高級模板。 我在SiteController上創建了所有的操作,所以我所有的url都是domain.com/site/something,我需要從url中刪除單詞「site」,所以它將成爲domain.com/something。Yii2:從URL中刪除控制器
我嘗試以下規則基於this question
'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',
),
],
也試過此基礎上this other question:
'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。 我也試過沒有第一/它也沒有工作。
有什麼想法?
THANK YOU!這工作完美!你會碰巧有一個鏈接,我可以閱讀\ w +和(。*)之間的區別,因爲這個改變確實有效。 –
在這裏你可以找到reg expr的絕佳解釋:https://regex101.com/。 \ w +代替任何字母,數字或下劃線。*匹配零個或多個字符。也許你的行爲是由多個單詞組成的。 –