如何设置访问localhost/farm-e-mart时默认首先展示登录系统
访问
localhost/farm-e-mart默认加载登录页的实现方案 配置逻辑核心是两点:一是给对应路径设置默认索引页,二是根据你用的服务环境加对应跳转/重写规则,下面是最常见场景的可直接复用的配置:
Apache 环境
找到farm-e-mart项目文件夹根目录下的.htaccess文件,没有就新建一个,写入以下配置:
- 如果你的登录页是独立静态/入口文件(比如
login.html、login.php),直接设置默认索引优先级:
# 把登录页放在索引列表最前面,优先级最高 DirectoryIndex login.php login.html index.php index.html
- 如果不想地址栏跳转到显式的login路径,保持
localhost/farm-e-mart的地址展示登录页,就开重写规则:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /farm-e-mart/ # 匹配根路径请求,直接转发到登录页,地址栏不变 RewriteRule ^$ login.php [L] </IfModule>
注意:提前确认Apache已经开启mod_rewrite模块,否则重写规则不会生效。
Nginx 环境
找到当前站点对应的Nginx配置文件(一般存放在/etc/nginx/conf.d/或者Nginx安装目录下的conf/vhost/路径),在/farm-e-mart/对应的location块中添加配置:
location /farm-e-mart/ { # 优先加载登录页作为默认索引 index login.php login.html index.php index.html; # 路径匹配不到资源时 fallback 到登录页 try_files $uri $uri/ /farm-e-mart/login.php; }
配置修改完成后,执行nginx -t校验语法无误,再执行nginx -s reload重载配置即可生效。
前后端分离(Vue/React 等带前端路由的项目)
- 前端路由层面直接配置根路径重定向,以Vue Router为例:
const routes = [ { path: '/farm-e-mart', // 访问根路径直接跳转到登录路由 redirect: '/farm-e-mart/login' }, { path: '/farm-e-mart/login', component: () => import('@/views/Login.vue') } // 其余业务路由正常配置即可 ]
- 生产环境部署时,除了保留前端的重定向规则,Web服务器(Nginx/Apache)需要把
/farm-e-mart路径的默认索引指向前端打包后的index.html,同时配置history路由的fallback规则,避免刷新页面出现404。
纯静态页面无服务端配置权限的场景
直接把你的登录页文件重命名为服务器默认识别的目录首页文件名(绝大多数服务器默认是index.html),放到farm-e-mart文件夹的根目录下,访问时就会自动加载,不需要额外改配置。
内容的提问来源于stack exchange,提问作者user19227375
相关产品推荐
相关产品推荐

