最近上线的网站前台,需要对URL做优化,首先在前台配置文件中设置
'URL_ROUTER_ON' => true, // 开启路由
'URL_MODEL' => 2, //开启重写模式,隐藏index.php。
define('BIND_MODULE', 'Home'), //默认绑定Home
然后在公共配置文件中:
/*路由配置*/
'MODULE_ALLOW_LIST' => array (
'Home',
'Admin',
), //设定可访问模块
'DEFAULT_MODULE' => 'Home', //默认访问模块,与前台配置文件呼应才能生效
由于URL路径/太多,打算将前台的 / 分隔符换成 连字符 - ,后台的不用替换为- ,于是在前台cof文件加上配置
'URL_PATHINFO_DEPR' => '-',
前台是给换成-了。(但是后如果也替换-,验证码就会出问题(可能后台路径写法的问题),不想去改后台)
********************************上线后,分割线……**************************************
上线linux环境后,又有问题:入口文件index.php不能被隐藏,看来是线上lamp环境跟线下wamp环境有差异造成的,分析有二:一是线上的http.conf可能跟线下的配置不一样;二是 linux系统严格区分大小写。于是找到解决办法:
(https://blog.csdn.net/changemust/article/details/79874966#commentBox)
hinkphp3.2.3,官网自带的.htaccess文件内不好使。
环境最好是phpstudy,为新人扫坑!
1.httpd.conf中去掉LoadModule rewrite_module modules/mod_rewrite.so 前面的#号
2.AllowOverride None 修改为了AllowOverride All
3.在config文件中添加以下配置:
// URL地址不区分大小写
'URL_CASE_INSENSITIVE' => true,
//REWRITE模式
'URL_MODEL' => 2,
4.根目录.htaccess如果没有自己建也可以。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Rewritebase /index.php
RewriteRule ^(.*)$ /index.php?/$1 [L]