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

如何使用.htaccess隐藏页面扩展名与$_GET参数并重写URL?

用.htaccess实现URL美化:隐藏扩展名与GET参数

嘿,这事儿不难,用Apache的mod_rewrite就能轻松实现你要的URL美化效果。我给你整理好具体步骤和规则,直接用就行:

前提准备

首先得确保你的Apache服务器满足两个条件:

  • 已经启用了mod_rewrite模块(大多数主机默认开启,但如果是本地环境,可能需要手动在httpd.conf里开启)
  • 网站根目录(也就是dice_mpc文件夹)的配置允许.htaccess生效,也就是在httpd.conf里对应目录的AllowOverride设置为All

具体.htaccess规则

在dice_mpc文件夹下新建(或修改).htaccess文件,粘贴以下内容:

# 开启重写引擎
RewriteEngine On
# 设置重写基础路径,对应你的项目目录
RewriteBase /dice_mpc/

# 规则1:把美观的URL重写回实际的PHP文件和参数
# 匹配类似 /members/xxxxxx 的请求,重写到 members.php?as=xxxxxx
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ $1.php?as=$2 [L,QSA]

# 规则2(可选但推荐):把旧的URL(带.php和?as参数)301重定向到新的美观URL
# 这样用户的旧书签、搜索引擎索引的旧链接都会跳转到新URL,对SEO友好
RewriteCond %{THE_REQUEST} ^GET\ /[^?]+\.php\?as=([^&\ ]+)
RewriteRule ^([^/]+)\.php$ /dice_mpc/$1/%1? [R=301,L]

规则解释

  • RewriteEngine On:开启URL重写功能
  • RewriteBase /dice_mpc/:指定重写的基础路径,确保规则在你的项目目录下生效
  • 第一条规则的两个RewriteCond是判断请求的不是真实存在的文件或目录,避免把真实的文件/目录也重写了
  • RewriteRule ^([^/]+)/([^/]+)$ $1.php?as=$2 [L,QSA]:把URL里的第一部分(比如members)作为PHP文件名,第二部分(比如那个哈希值)作为as参数,内部重写到对应的PHP文件;L表示这是最后一条规则,QSA表示保留其他可能的GET参数(如果有的话)
  • 第二条规则是做301永久重定向,把旧的members.php?as=xxxx跳转到members/xxxx,R=301告诉浏览器和搜索引擎这是永久跳转,后面的?会去掉原URL里的查询字符串

测试注意事项

  • 写完规则后,清空浏览器缓存再测试,因为301重定向会被浏览器缓存
  • 如果本地测试用的是XAMPP/WAMP,记得重启Apache服务让配置生效
  • 如果遇到404错误,先检查mod_rewrite是否开启,以及AllowOverride是否设置正确

内容的提问来源于stack exchange,提问作者Ariel Divine Torreon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:21:38