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

如何通过.htaccess移除友好URL中的连字符实现重定向

解决Apache重写规则中替换URL连字符为空格的问题

修改后的.htaccess规则

# 循环替换URL中的连字符为空格,直到所有连字符处理完成
RewriteRule ^sales/([^-]*)-([^/]*)$ /sales/$1 $2 [N,DPI]

# 匹配处理后的路径,传递参数到PHP脚本
RewriteRule ^sales/([^/]+)/?$ /my_products.php?name_computer=$1&new_page=1 [L,QSA]

规则说明

  • 第一条规则:
    • 匹配sales/后包含连字符的路径,将第一个-替换为空格
    • [N]标志让Apache重复执行规则集,直到没有连字符可替换
    • [DPI]标志防止Apache将替换后的空格解析为路径信息的一部分,避免错误
  • 第二条规则:
    • 匹配处理后无连字符的路径,将$1(即替换空格后的字符串)作为name_computer参数传递
    • [L]标志终止后续重写规则,[QSA]保留原有查询字符串(如果有的话)

注意事项

  • 确保Apache启用了mod_rewrite模块
  • 移除原规则中的RewriteCond %{REQUEST_URI} !\-,因为现在需要处理包含连字符的URL
  • 该规则支持多个连字符的替换,例如super-cumputer-duper会被转换为super cumputer duper

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:52:12