WordPress中用.htaccess重定向带日期媒体文件至无日期新URL
解决媒体URL重定向问题
你原来的规则无效的核心原因是路径前缀匹配错误:旧URL里的路径是wp-content/ulopads/,但你写的规则匹配的是wp-content/uploads/,自然抓不到旧链接。
下面是不同服务器环境下的正确重定向规则:
Apache环境(.htaccess文件)
把规则放在.htaccess最顶部(要在WordPress自带的Rewrite规则之前):
RewriteEngine On # 永久重定向带日期的旧媒体链接到新路径 RewriteRule ^wp-content/ulopads/[0-9]{4}/[0-9]{1,2}/(.*)$ /wp-content/uploads/$1 [R=301,L,NC]
NC标志:忽略URL大小写,避免大小写差异导致匹配失败[0-9]{1,2}:兼容1位或2位的日期/月份(比如1或14都能匹配)R=301:永久重定向,对SEO友好
Nginx环境(站点配置文件)
在对应站点的server块中添加:
rewrite ^/wp-content/ulopads/[0-9]{4}/[0-9]{1,2}/(.*)$ /wp-content/uploads/$1 permanent;
额外注意事项
- 确保Apache开启了
mod_rewrite模块,Nginx无需额外模块 - 测试前清除浏览器缓存,避免旧缓存干扰测试结果
- 如果旧URL里的
ulopads是拼写错误(实际应为uploads),把规则里的ulopads改成uploads即可
内容的提问来源于stack exchange,提问作者bezkitu
相关产品推荐
相关产品推荐

