You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于MVC架构的网站HTTPS重定向与.htaccess配置咨询

我来帮你梳理下你当前MVC网站里的.htaccess配置情况,把各个目录的配置清晰整理并解析:

当前.htaccess文件分布

  • bestil 根目录
  • app 目录
  • public 目录

1. bestil 根目录下的.htaccess配置

这个配置主要负责强制HTTPS跳转和根路径重定向到public目录,是网站入口层的基础配置:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
RedirectMatch ^/$ /public/

配置解析:

  • RewriteEngine On:开启Apache的URL重写引擎,是所有重写规则生效的前提
  • RewriteCond %{HTTPS} !=on:判断当前请求是否未使用HTTPS协议
  • RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]:将所有非HTTPS请求重定向到HTTPS地址(默认是临时重定向302,若需要永久重定向可改为[R=301,L])
  • RedirectMatch ^/$ /public/:直接将网站根路径(/)的请求重定向到/public/子目录,符合MVC架构将public作为唯一对外访问入口的设计

2. public 目录下的.htaccess配置(已提供部分)

Options -MultiViews
RewriteEngine On
RewriteBa...

已提供部分解析:

  • Options -MultiViews:关闭Apache的MultiViews功能,避免Apache自动匹配文件(比如请求/home时不会自动尝试加载home.php),确保重写规则完全主导路由逻辑
  • RewriteEngine On:显式开启重写引擎(子目录配置会继承父目录设置,但显式声明更稳妥)

通常在MVC架构中,public目录的.htaccess还会包含将所有请求转发到index.php的核心规则,示例补充如下(如果你的配置没写完,这是最常见的后续内容):

# 补充常见的MVC路由规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

这条规则会把所有非文件、非目录的请求都转发到public/index.php,由MVC的路由系统统一处理。

3. app 目录下的.htaccess配置

你目前没提供这个目录的配置,从MVC架构的安全性角度出发,app目录存放核心业务代码,应该禁止外部直接访问,推荐配置如下:

# 针对Apache 2.2及以下版本
Deny from all

# 针对Apache 2.4+版本(更推荐)
Require all denied

内容的提问来源于stack exchange,提问作者frankmyhre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:13:20