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

Apache URL重写需求:移除index.php及查询字符串

解决.htaccess URL重写问题

你需要将https://test.com/myko这类简洁URL重写到index.php?code=myko,同时避免把index.php本身作为参数值。你的原有规则问题在于匹配了所有请求(包括index.php自身),导致出现错误参数。

以下是正确的.htaccess规则:

RewriteEngine On

# 排除真实存在的文件和目录,避免影响静态资源或真实页面访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# 匹配根目录下的单个路径段,重写到带code参数的index.php
RewriteRule ^([^/]+)$ index.php?code=$1 [L]

规则说明:

  • RewriteCond %{REQUEST_FILENAME} !-f:如果请求的不是服务器上真实存在的文件(比如index.php、静态资源文件),才执行后续重写规则
  • RewriteCond %{REQUEST_FILENAME} !-d:同理,排除真实存在的目录访问
  • RewriteRule ^([^/]+)$ index.php?code=$1 [L]:匹配根目录下不含斜杠的字符串(比如myko),将其作为code参数传入index.php,[L]表示终止后续规则处理

如果需要支持多级路径(比如https://test.com/user/myko要转换为code=user/myko),可以把最后一行规则改为:

RewriteRule ^(.*)$ index.php?code=$1 [L]

注意事项:

  1. 确保服务器已开启mod_rewrite模块
  2. 网站根目录的Apache配置中需设置AllowOverride All,否则.htaccess规则无法生效
  3. 测试前清空浏览器缓存,避免旧缓存干扰结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 06:32:34