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

如何通过htaccess配置移除URL中的?q=参数实现URL美化

问题原因

你遇到的问题是重写规则触发了二次重写循环:

  1. 首次请求/something时,规则会将其重写为index.php?q=something
  2. 重写后的请求index.php会再次进入重写规则匹配,被重写为index.php?q=index.php,最终你拿到的q参数就被覆盖成了index.php

修复方案

1. 修改.htaccess配置

替换原有规则为以下内容:

RewriteEngine On
# 排除真实存在的文件、目录,避免静态资源被重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# L表示匹配后终止当前轮重写,QSA表示自动追加原URL的其他查询参数
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

2. 确认Apache基础配置生效

  • 确保Apache已开启mod_rewrite扩展
  • 确保站点配置中对应目录的AllowOverride参数设置为All,否则.htaccess文件不会生效

修改完成后重启Apache服务,再次访问https://example.com/something即可正常获取到q参数的值为something。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:36:03