所謂的url參數美化就是將冗長的字符串 進行正則替換
yii2 框架的url參數美化完成需要完成兩個階段
第一個階段分apache和nginx 兩種的配置
apache :
1.1 必須開啟rewrite 模式
http.conf 中
LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的注釋
1.2在web目錄新建 ".htaccess"文件
配置rewrite重寫規則
Options +FollowSymLinks IndexIgnore */* 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
b nginx 的配置 這個就比較簡單了
只需要在配置文件的虛擬主機上的location / 中 寫上 rewrite
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }
2在yii框架中的 config的組件 urlManage
'urlManager' => [ 'class' => 'yii\web\UrlManager', 'enablePrettyUrl' => true, //開啟url的支持 'showScriptName' => false, //入口文件 index.php 不展示 // 'suffix' => '.html', //配置為靜態文件后綴 'rules'=>[ '<controller:\w+>/<id:\d+>'=>'<controller>/view', //正則 '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ] ],