漂亮 URL 与 yii2
Pretty URL with yii2
我试图在 yii2 中启用 pretty url,但它无法正常工作。
url管理员配置:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'baseUrl' => '/',
]
public function actionIndex($custom_param)
{
print($custom_param);
}
example.com/mycontroller?custom_param=value
完美运行。但是我需要 example.com/mycontroller/value
.
这样的 URL
如果您想将此应用于 mycontroller
的 index
操作,并且如果 custom_param
是整数,请将此添加到 [=15= 的 rules
部分]:
`urlManager' => [
'rules' => [
'mycontroller/<custom_param:\d+>' => 'mycontroller/index',
],
],
否则您可以修改模式以满足您的需要。
例如,如果 custom_param
是字符串,则将 d+
更改为 w+
。
如果你想将此规则应用到其他控制器,你可以这样做:
'<controller:(mycontroller|anothercontroller)>/<custom_param:\d+> => '<controller>/index'
,
阅读官方文档:
在您的 web.php 文件中,组件下方使用此代码:
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Disable index.php
'showScriptName' => false,
// Disable r= routes
'enablePrettyUrl' => true,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
在您的网络文件夹中创建一个 .htaccess 文件并粘贴它:
RewriteEngine on # If a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # therwise forward it to index.phpRewriteRule . index.php
我试图在 yii2 中启用 pretty url,但它无法正常工作。
url管理员配置:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'baseUrl' => '/',
]
public function actionIndex($custom_param)
{
print($custom_param);
}
example.com/mycontroller?custom_param=value
完美运行。但是我需要 example.com/mycontroller/value
.
如果您想将此应用于 mycontroller
的 index
操作,并且如果 custom_param
是整数,请将此添加到 [=15= 的 rules
部分]:
`urlManager' => [
'rules' => [
'mycontroller/<custom_param:\d+>' => 'mycontroller/index',
],
],
否则您可以修改模式以满足您的需要。
例如,如果 custom_param
是字符串,则将 d+
更改为 w+
。
如果你想将此规则应用到其他控制器,你可以这样做:
'<controller:(mycontroller|anothercontroller)>/<custom_param:\d+> => '<controller>/index'
,
阅读官方文档:
在您的 web.php 文件中,组件下方使用此代码:
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Disable index.php
'showScriptName' => false,
// Disable r= routes
'enablePrettyUrl' => true,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
],
在您的网络文件夹中创建一个 .htaccess 文件并粘贴它:
RewriteEngine on # If a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # therwise forward it to index.phpRewriteRule . index.php