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

如何将/forums/user.php?user_id=6/改为/forums/user.php/6/并正常访问?

搞定URL重写:让/forums/user.php/6/正常访问

直接给你调整后的可用规则,把它放在**/forums目录下的.htaccess**文件里:

Options -MultiViews
RewriteEngine On

# 把/user.php/xxx/ 转成后台能识别的/user.php?user_id=xxx
RewriteRule ^user\.php/([^/]+)/?$ user.php?user_id=$1 [L,QSA]

为啥原来的规则会导致空白?

  1. 大概率是Apache的MultiViews功能在捣乱——它会自动把/user.php/6这类路径当成直接访问user.php文件,跳过你的重写规则,导致程序拿不到正确的user_id参数,页面直接空白。加Options -MultiViews就是关掉这个冲突功能。
  2. 加上QSA标志是为了保留URL里可能存在的其他查询参数,比如访问/user.php/6/?foo=bar时,不会弄丢foo参数,程序能正常接收。

可选:把旧URL自动跳转到新URL

如果想让原来的/forums/user.php/?user_id=6/自动跳转到新的友好URL,再在RewriteEngine On之后加上这段规则:

# 旧URL永久重定向到新URL,对SEO更友好
RewriteCond %{QUERY_STRING} ^user_id=([^&]+)
RewriteRule ^user\.php/?$ user.php/%1/? [R=301,L]

最后确认这几点

  • 确保Apache已经启用了mod_rewrite模块(没开的话得先开启)
  • .htaccess文件权限设置正确,Apache能读取它(一般设为644即可)
  • 检查你的user.php代码,确认是用$_GET['user_id']正确获取参数,别写错了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:02:43