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

Laravel子页面www/http/https重定向失效问题求助

解决Laravel中所有请求(含子页面)统一重定向到HTTPS非www的问题

第一步:关闭cPanel中的重定向记录

你当前在cPanel设置的重定向会和.htaccess规则冲突,导致子页面跳转异常,先删除这条记录。

第二步:替换.htaccess规则

调整规则顺序并完善重定向逻辑,确保所有HTTP、www、非www的请求(包括子页面)都正确重定向到HTTPS非www地址,且保留原路径:

Options -MultiViews -Indexes

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# 1. 重定向所有HTTP请求到HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]

# 2. 重定向www前缀的请求到非www的HTTPS地址
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

规则说明

  • 重定向规则放在最前面:确保请求在被Laravel前端控制器处理之前完成重定向,避免子页面路径被替换成index.php
  • 使用%{REQUEST_URI}保留原路径:这个变量会携带完整的请求路径(包括子页面如/abc),重定向时不会丢失
  • 区分HTTP转HTTPS和www转非www:两条规则分别处理协议和域名前缀,逻辑清晰,覆盖所有场景
  • [NC]标记:忽略域名的大小写匹配,兼容不同大小写的请求

验证场景

修改完成后,以下请求都会正确跳转到https://example.com/abc:

  • http://example.com/abc
  • http://www.example.com/abc
  • https://www.example.com/abc
    直接访问https://example.com/abc则不会触发重定向,且显示安全标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:22:19