操作思路
关于去掉index.php 案例
未重写路由 http://www.front.com/index.php?r=site%2Flogin
重写之后 http://www.front.com/?r=site%2Flogin 去掉index.php
基础的伪静态文件规则写法 (.htaccess) 放在web目录下即可
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-d # 如果是一个目录或文件,就访问目录和文件
RewriteCond %{SCRIPT_FILENAME} !-f # 如果文件存在,就直接访问文件,不进行下面的rewrite rule
RewriteRule ^(.*)$ index.php/$1
初次运行可能出现的错误 及初步解决方案
Warning1 : apache 2.4的rewrite配置,因为使用了虚拟主机所以rewrite配置也应该在httpd-vhosts.conf中配置一下参数,具体是将allowoverride none 改为allowoverride all,当然一开始配置虚拟主机时的require all grant也是必要的^_^
Warning2 : LoadModule rewrite_module modules/mod_rewrite.so 重写需在httpd.conf中打开这个模块
关于开启url美化案例
未重写路由 http://www.front.com/index.php?r=site%2Flogin
重写之后 http://www.front.com/site/login 去掉 ? r = 加后缀.html
操作方法
将下面五行配置加到配置文件中即可 (basic版本在config/web.php中 高级版本在config/main.php)
'urlManager' =>[
'enablePrettyUrl' => true, # 开启路由美化
'showScriptName' => false, # 禁止一个脚本文件
'suffix' => '.html', # 可自定义的后缀
],