0
我需要做一個url地址,看起來像網站/用戶/用戶名其中用戶名來自數據庫。我試圖通過在我的動作函數中放置一個$ user變量作爲參數來達到它,結果如下:website/action?user = username。但它看起來有些陰沉而醜陋。我如何獲得理想的結果?如何在Yii2中製作正確的url地址
我需要做一個url地址,看起來像網站/用戶/用戶名其中用戶名來自數據庫。我試圖通過在我的動作函數中放置一個$ user變量作爲參數來達到它,結果如下:website/action?user = username。但它看起來有些陰沉而醜陋。我如何獲得理想的結果?如何在Yii2中製作正確的url地址
首先,您需要在config/web.php中配置url規則。
[
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
"user/<username:\w+>"=> "controller/action"
],
],
],
]
而且在規則陣列添加URL匹配條件像 "user/<username:\w+>"=> "controller/action"
創建。在網絡文件夾htaccess文件的URL下條件
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
併產生網址助手類或HTML類網址,如下面
echo Url::to(['controller/action', 'username' => 'jack']);
Or
echo Html::a('Profile', ['controller/action', 'username' => 'jack'], ['class' => 'profile-link'])
注: -控制器名稱,操作名稱和用戶名應與匹配網址條件。我們在規則數組中定義的。