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

如何移除URL中的?id=参数?已通过.htaccess去除.php后缀

解决URL中隐藏ID参数的问题

先排查你之前的错误

你写的规则RewriteRule ^([^.]+)/?$ bloge.php?id=$1 [L, QSA]有两个问题:

  • 拼写错误:bloge.php应该是article.php
  • 规则范围太宽:^([^.]+)会匹配所有不带点的路径(包括你已经设置好的/blog),导致服务器循环重写,触发500错误

正确的.htaccess配置步骤

假设你已经有去掉.php后缀的规则,现在添加针对文章页面的重写规则:

# 开启重写引擎
RewriteEngine On

# 去掉.php后缀的规则(如果已存在就保留)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

# 处理article的友好URL:把/article/27映射到/article.php?id=27
RewriteRule ^article/(\d+)/?$ article.php?id=$1 [NC,L,QSA]

# 可选:把旧的/article?id=27重定向到新的友好URL,避免重复内容
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteRule ^article$ /article/%1? [R=301,L]

修改前端链接

把代码里原来的<a href="article.php?id=27">改成:

<a href="/article/27">文章标题</a>

这样用户点击后地址栏就会显示https://example.com/article/27,而不是带?id=的形式。

PHP代码无需修改

你的article.php里依然可以用$_GET['id']获取文章ID,重写规则已经把URL中的数字传递给了id参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:22:09