目录
NGINX 重写
Admin项目隐藏入口文件,且禁用Admin模块&Admin.php
1️⃣配置仅用模块
2️⃣新增admin_xyz.php文件(自定义入口文件名),并绑定admin模块
3️⃣配置nginx 重写规则
NGINX 重写
在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:
location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
应用安装在二级目录,Nginx
的伪静态方法设置如下,其中youdomain
是所在的目录名称。
location /youdomain/ {
if (!-e $request_filename){
rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=/$1 last;
break;
}
}
快捷复制粘贴
location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite /mJnxeAXZHI.php(.*)$ /mJnxeAXZHI.php?s=/$1 last;
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
Admin项目隐藏入口文件,且禁用Admin模块&Admin.php
1️⃣配置仅用模块
配置后admin禁止访问,无法用doman/admin/index/index 的方式访问
// 禁止访问模块
'deny_module_list' => ['common', 'admin'],
2️⃣新增admin_xyz.php文件(自定义入口文件名),并绑定admin模块
// [ 应用入口文件 ]
namespace think;
require __DIR__ . '/../vendor/autoload.php';
// 执行HTTP应用并响应
$http = (new App())->http;
// 绑定到admin模块,不同版本绑定差异请参考手册
$response = $http->name('admin')->run();
$response->send();
$http->end($response);
3️⃣配置nginx 重写规则
location / {
# 默认执行文件
index index.php index.html index.htm;
# 引入nginx配置文件
#include /www/zksl/public/nginx.htaccess;
# 重写规则
if (!-e $request_filename) {
# 我的admin后台入口文件名是`mJnxeAXZHI.php`
rewrite /mJnxeAXZHI.php(.*)$ /mJnxeAXZHI.php?s=/$1 last;
# index.php 默认入口重写
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
4️⃣常见问题
问题1、后台无法打开,提示模块不存在
原因:Nginx未配置后台入口的重写规则,建议后台重写规则优先于index.php的重写规则