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

现有PHP应用通过.htaccess实现URL美化重写及参数读取咨询

完整.htaccess配置方案

首先请确认你的Apache环境已开启mod_rewrite扩展,且站点配置中的AllowOverride参数设置为All,否则.htaccess规则不会生效。
以下是满足需求的完整配置,直接放在站点根目录即可:

RewriteEngine On

# 跳过真实存在的静态文件、目录,避免css/js/图片等资源被重写拦截
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# 循环处理URL路径中的键值对,将每一组 /参数名/参数值 转换为 参数名=参数值 追加到查询字符串
RewriteRule ^([^/]+)/([^/]+)(/?.*)$ $3?$1=$2 [QSA,N]

# 根路径映射到index.php
RewriteRule ^$ index.php [L]

# 页面名路径映射:如 /product 映射到 product.php,/products-list 映射到 products-list.php
RewriteRule ^([a-zA-Z0-9_-]+)/?$ $1.php [L]
PHP参数读取说明

不需要自行编写解析函数处理URL,上述重写规则已经自动将路径中的所有键值对转换为标准的GET参数格式,你可以直接使用原生$_GET全局数组读取参数,和传统?拼接参数的读取方式完全一致:

  • 访问 /var1/aaa/var2/bbb/var3/ccc 时,直接调用$_GET['var1']即可获取值aaa
  • 访问 /product/var4/ddd/var5/eee 时,直接调用$_GET['var4']即可获取值ddd
常见问题排查

如果规则不生效,优先检查以下两项:

  • 执行phpinfo()查看mod_rewrite是否处于启用状态
  • 检查Apache站点配置中对应站点的AllowOverride参数是否设置为All

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:54:03