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

Debian更新后网站含%20的链接失效,求Apache服务器端修复方案

解决含%20的链接失效问题:服务器端重定向+批量链接修改方案

一、服务器端批量重定向(无需修改页面)

Apache服务器(用.htaccess)

如果你的主机用Apache,直接在网站根目录创建/修改.htaccess文件,添加以下规则:

RewriteEngine On
RewriteCond %{REQUEST_URI} "%20"
RewriteRule ^(.*)%20(.*)$ $1_$2 [L,R=301]

这条规则会自动把所有带%20的请求URL替换成下划线版本,返回301永久重定向,用户访问旧链接会自动跳转到有效地址,也不影响搜索引擎收录。

Nginx服务器

要是用Nginx,找到站点配置文件(一般在/etc/nginx/sites-available/目录下),在server块里加这段规则:

rewrite ^(.*)%20(.*)$ $1_$2 permanent;

加完重启Nginx生效:sudo systemctl restart nginx

二、批量修改页面内的链接(彻底解决)

如果不想依赖重定向,直接把页面里的旧链接改成下划线版本,试试这两种批量方法:

方法1:Notepad++批量替换

  1. 打开Notepad++,选「文件」→「打开文件夹作为工作区」,选中网站根目录
  2. 按Ctrl+Shift+F打开「在文件中查找」窗口
  3. 「查找目标」填:href="([^"]*)%20([^"]*)"
  4. 「替换为」填:href="$1_$2"
  5. 「查找模式」选「正则表达式」
  6. 勾选「在所有打开的文档中替换」,点「全部替换」就能批量改完所有页面里的链接。

方法2:Linux命令行批量替换

能登服务器的话,用sed命令批量处理:

# 先进入网站根目录
cd /path/to/your/website
# 备份整个网站(先做这个,避免出错)
cp -r . /path/to/website_backup
# 批量替换当前目录下的.html文件
sed -i 's/href="\([^"]*\)%20\([^"]*\)"/href="\1_\2"/g' *.html
# 处理所有子文件夹里的.html文件
find . -name "*.html" -exec sed -i 's/href="\([^"]*\)%20\([^"]*\)"/href="\1_\2"/g' {} \;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:42:45