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

如何通过htaccess将URL中的ID重写为名称,解决名称URL无法访问问题

修复方案

你当前的重写规则存在路径适配、业务逻辑匹配两类问题,按以下步骤操作即可解决:

  • 先确认Apache已经开启mod_rewrite模块,站点配置中AllowOverride参数设置为All,保证.htaccess规则能正常被加载。
  • 如果你将.htaccess文件放在项目的new子目录下,替换完整规则为以下内容:
RewriteEngine On

# 文章详情页重写:匹配/new/[标识]格式的请求
RewriteRule ^([0-9a-z]+)/?$ news-details.php?nid=$1 [NC,L,QSA]

# 分类页重写:匹配/new/category/[标识]格式的请求
RewriteRule ^category/([0-9a-z]+)/?$ category.php?catid=$1 [NC,L,QSA]
  • 如果你将.htaccess放在站点根目录而非new子目录下,使用以下规则:
RewriteEngine On
RewriteRule ^new/([0-9a-z]+)/?$ /new/news-details.php?nid=$1 [NC,L,QSA]
RewriteRule ^new/category/([0-9a-z]+)/?$ /new/category.php?catid=$1 [NC,L,QSA]
  • 业务逻辑适配:你当前的规则是直接把URL中的标识传给参数,如果URL里用的是文章/分类的文字别名而非数字ID,需要修改news-details.php和category.php的查询逻辑,增加别名到数字ID的映射查询,否则代码直接拿别名当数字ID查库会返回空内容,这是访问带名称URL无法加载内容的最常见原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:39:03