Ivo*_*ema 4 .htaccess yii2 yii-url-manager
在Yii2中,我无法启用漂亮的网址.
我的配置:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
],
Run Code Online (Sandbox Code Playgroud)
我的.htaccess:
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
Run Code Online (Sandbox Code Playgroud)
我的剧本:
echo 'enablePrettyUrl: ';
echo Yii::$app->urlManager->enablePrettyUrl ? 'true ' : 'false';
echo '<br>';
echo 'enableStrictParsing: ';
echo Yii::$app->urlManager->enableStrictParsing ? 'true ' : 'false';
echo '<br>';
echo 'showScriptName: ';
echo Yii::$app->urlManager->showScriptName ? 'true ' : 'false';
echo Url::to(['/book/read', 't' => 'booktitle', 'c'=>'chaptertitle']);
Run Code Online (Sandbox Code Playgroud)
脚本的输出:
enablePrettyUrl: true
enableStrictParsing: false
showScriptName: false
/book/read?t=booktitle&c=chaptertitle
Run Code Online (Sandbox Code Playgroud)
显然,我没有得到漂亮的Url's.为什么不?
enablePrettyUrl=== true
你得到漂亮的URL.这是一个很棒的网址
/book/read?t=booktitle&c=chaptertitle
Run Code Online (Sandbox Code Playgroud)
一个丑陋的URL是
index.php?r=book/read&t=booktitle&c=chaptertitle
Run Code Online (Sandbox Code Playgroud)
所以一切都在yii2中按预期工作.现在你可能想让它们更漂亮,在这种情况下你可以添加到你的规则部分
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'book/read/<t>/<c>' => 'book/read',
]
Run Code Online (Sandbox Code Playgroud)
这将生成一个看起来像的链接
book/read/booktitle/chaptertitle
Run Code Online (Sandbox Code Playgroud)
改变它以满足您的需求.无需更改控制器中的任何内容,它仍将接收t和c参数.
归档时间: |
|
查看次数: |
6055 次 |
最近记录: |