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

如何通过.htaccess移除URL中的%20字符

用.htaccess移除URL中的%20(空格)并完成重定向

直接借助Apache的mod_rewrite模块,就能批量移除URL里的所有空格(也就是URL编码后的%20),完全不用修改页面文件本身。以下是具体配置:

通用规则(全站生效)

在网站根目录的.htaccess里添加这段代码:

RewriteEngine On

# 循环移除URL里的所有空格
RewriteCond %{REQUEST_URI} \s [NC]
RewriteRule ^(.*)\s(.*)$ /$1$2 [L,R=301]

规则解释

  • RewriteEngine On:必须先开启重写功能
  • RewriteCond %{REQUEST_URI} \s [NC]:检测当前请求的URL路径里有没有空格,NC是不区分大小写的意思(这里主要兼容编码相关的小差异)
  • RewriteRule ^(.*)\s(.*)$ /$1$2 [L,R=301]:把URL里第一个出现的空格删掉,把空格前后的内容拼起来。L表示这一轮重写到这为止,R=301是永久重定向,既能让浏览器地址栏更新成新URL,也对SEO友好

针对/WEB/目录的专属规则

如果只需要处理/WEB/下面的URL,不想影响其他页面,可以用这个限定版规则:

RewriteEngine On

# 只处理/WEB/路径下的URL
RewriteCond %{REQUEST_URI} ^/WEB/.*\s [NC]
RewriteRule ^(WEB/.*)\s(.*)$ /$1$2 [L,R=301]

比如你访问https://mywebsite.com/WEB/111%20111%201111/时,服务器会先去掉第一个空格,重定向到https://mywebsite.com/WEB/111111%201111/,然后再次触发规则删掉剩下的空格,最终跳转到https://mywebsite.com/WEB/1111111111/,而服务器后台还是会正确匹配到带空格的实际文件。

小提示

  • 测试的时候可以先用R=302临时重定向,确认规则没问题了再改成R=301永久重定向,避免缓存问题
  • 确保.htaccess文件有服务器可读的权限
  • 这个规则只适用于Apache服务器,Nginx的话得用对应的rewrite语法,但你明确要.htaccess,所以不用管Nginx的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:24:27