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

如何通过.htaccess实现长URL转短链接且服务原长URL内容

实现方案

你现有的配置已经完成了「短URL访问时返回对应动态页面内容」的内部重写逻辑,只需要补充一套外部重写规则,把用户直接访问的带参数原始地址重定向为短URL格式即可,完整配置如下:

RewriteEngine on

# 原有HTTPS/域名标准化规则
RewriteCond %{HTTP_HOST} !^www\.website\.com$ [NC]
RewriteRule ^(.*)$ https://www.website.com/$1 [R=301,L]

# 新增:将带t参数的原始地址外部重定向为短URL格式
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^t=([0-9a-f]{6})$ [NC]
RewriteRule ^index\.php$ /%1? [R=301,L]

# 原有:短URL内部重写到实际处理脚本
RewriteRule ^([0-9a-f]{6})$ index.php?t=$1 [L]

规则说明

  • RewriteCond %{ENV:REDIRECT_STATUS} ^$ 用于判断请求是用户直接发起的外部请求,不是服务器内部重写产生的子请求,避免重定向循环
  • RewriteCond %{QUERY_STRING} ^t=([0-9a-f]{6})$ [NC] 匹配查询字符串中t参数为6位十六进制字符的情况,加NC参数可同时支持大写、小写的十六进制编码
  • 重写规则末尾的?作用是丢弃原始请求的查询字符串,避免重定向后地址栏残留t=xxx参数
  • 调试阶段建议把R=301改成R=302,等确认所有跳转逻辑符合预期再换回301,避免浏览器缓存错误的301规则影响测试
  • 你问题示例中的www.website.com/index/php?t=5f33ee属于笔误,实际场景下应为www.website.com/index.php?t=5f33ee,上述规则针对正确的index.php路径做匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:09:04