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

如何通过.htaccess在PHP中移除URL的?id=并替换为斜杠

解决URL中?id=转斜杠的404问题

你当前的.htaccess只实现了移除.php后缀的功能,但没有处理将/xxx格式的URL转换为?id=xxx参数的规则,导致服务器找不到对应资源,所以出现404错误。

你需要在现有规则前添加一条重写规则,把带尾部ID的URL映射回带参数的PHP文件,修改后的.htaccess如下:

RewriteEngine on

# 将类似 view-seller/xxxx 的URL转换为 view-seller.php?id=xxxx
RewriteRule ^([^/]+)/([^/]+)$ $1.php?id=$2 [NC,L]

# 原有移除.php后缀的规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

关键说明:

  • 规则顺序:必须把带ID的转换规则放在前面,否则服务器会优先匹配到普通的.php后缀添加规则,导致ID部分被当成普通文件名处理。
  • 通用匹配:上面的规则适用于所有类似xxx/yyyy结构的URL,比如view-product/123会自动转为view-product.php?id=123。如果只需要针对view-seller单独处理,可以把第一条规则改成:
    RewriteRule ^view-seller/([^/]+)$ view-seller.php?id=$1 [NC,L]
    
  • 验证环境:确保你的Apache服务器已经开启了mod_rewrite模块,并且.htaccess文件放置在localhost/new/目录下(和你的PHP文件同级)。

内容的提问来源于stack exchange,提问作者Mark nicholas Razon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:46:10