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

如何正确编写.htaccess重写规则以实现指定URL格式?

修正.htaccess重写规则实现友好URL

你现有规则的问题在于第二条规则强制要求accounts后跟上数字(([0-9]+)),并且末尾带斜杠,这和你想要的localhost/mysite/admin/accounts不匹配。以下是正确的配置方案:

完整的.htaccess配置

将以下内容放在mysite根目录的.htaccess文件中(和admin文件夹同级):

RewriteEngine On

# 避免重写真实存在的文件或目录
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# 匹配 admin/accounts 或 admin/accounts/,转发到目标URL
RewriteRule ^admin/accounts/?$ admin/index.php?page=accounts [L,QSA]

# 处理admin根目录访问(可选,保留原逻辑)
RewriteRule ^admin/?$ admin/index.php [L]

关键规则说明

  • ^admin/accounts/?$:匹配admin/accounts和admin/accounts/两种访问形式,/?表示末尾斜杠可选
  • [L]:标记为最后一条规则,匹配成功后停止后续规则处理
  • [QSA]:保留原URL中的查询参数,比如admin/accounts?id=10会自动转为admin/index.php?page=accounts&id=10

额外注意事项

  1. 确保Apache服务器已开启mod_rewrite模块
  2. 确认.htaccess文件在mysite根目录拥有读写权限
  3. 你的admin/index.php需要处理page参数,比如:
<?php
if (isset($_GET['page']) && $_GET['page'] === 'accounts') {
    include 'accounts.php';
}
// 其他页面逻辑
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:23:20