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

Apache中按条件替换特定图片源URL的技术咨询

当然可以实现!Apache的mod_rewrite模块完全能搞定你的URL替换需求,下面分场景给你具体的配置规则,直接放到Apache的配置文件(比如httpd.conf)或者网站根目录的.htaccess文件里就行:

先确认前置条件

首先要确保你的Apache已经启用了mod_rewrite模块,大部分服务器默认是开启的,如果没开,需要先在主配置文件里添加(或取消注释)这一行:

LoadModule rewrite_module modules/mod_rewrite.so

如果用.htaccess的话,还要确保对应目录的AllowOverride设置为All,否则.htaccess里的规则不会生效。

场景1:将所有/0/0/90/开头的URL替换为http://foo.com/0/0/90/

这个规则会把任何以/0/0/90/开头的请求,重定向到foo.com的对应路径:

RewriteEngine On
# 排除已经是foo.com的请求,避免循环重定向
RewriteCond %{HTTP_HOST} !^foo\.com$
# 匹配路径并替换,R=302是临时重定向,确定永久替换可以改成R=301
RewriteRule ^0/0/90/(.*)$ http://foo.com/0/0/90/$1 [L,R=302]

场景2:Localhost环境下,将localhost/0/0/90/指向www.foo.com/0/0/90/

如果只需要在本地开发环境生效,专门针对localhost的规则:

RewriteEngine On
# 匹配localhost(支持带端口的情况,比如localhost:8080)
RewriteCond %{HTTP_HOST} ^localhost(:\d+)?$
# 重定向到www.foo.com的对应路径
RewriteRule ^0/0/90/(.*)$ http://www.foo.com/0/0/90/$1 [L,R=302]

额外说明:内部转发(地址栏不变化)

如果不想让浏览器地址栏显示新的URL,而是服务器内部转发请求到foo.com,可以去掉R=302,换成[P](需要同时启用mod_proxy模块):

RewriteRule ^0/0/90/(.*)$ http://foo.com/0/0/90/$1 [L,P]

这种方式适合不想暴露后端地址的场景,但需要确保mod_proxy已经启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:04:24