我希望你能帮助我。
我想屏蔽来自另一个域(不在我的服务器上)的URL时遇到问题
<img src="https://images2.externaldomain.com/?w=200&h=200&bg=white&trim=5&t=letterbox&url=ssl%3Ai.otto.de%2Fi%2Fotto%2F60393181-9d98-5221-b0ab-35d38cd2aee2.jpg%3F%24Preset_Retargeting_640%24&feedId=62797&k=bd10410eeddf3ad8980f6e543edf4455110cb164">
到掩码URL,如
<img src="https://mysubdomain.mydomain.com/productimages/bd10410eeddf3ad8980f6e543edf4455110cb164.jpg">
图像ID应为k=
末尾的ID
问题是我需要一个通配符解决方案,因为我有很多图片都有这样的网址,只有https://images2.theotherdomain.com
是稳定的,每个图片在源网址中都有一个ID(k=)。
哪个RewriteRule
或条件可以工作?
感谢每一个提示
我添加到我的.htaccess的片段没有影响我的html.图片的来源看起来完全一样.我怎么能掩盖他们,它看起来像我的服务器的图片来源?
MrWhite的提示很棒,它在X1 E0 F1 X上工作,但在我的网站上不工作-我错了什么?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} (?:^|&)k=([\da-f]+)
RewriteRule ^$ productimages/%1.jpg [QSD,L]
</IfModule>
我的图像看起来像:
<img src="https://images2.externaldomain.com/?w=200&h=200&bg=white&trim=5&t=letterbox&url=ssl%3Ai.otto.de%2Fi%2Fotto%2F60393181-9d98-5221-b0ab-35d38cd2aee2.jpg%3F%24Preset_Retargeting_640%24&feedId=62797&k=bd10410eeddf3ad8980f6e543edf4455110cb164">
或
<img src="https://images2.externaldomain.com/?w=200&h=200&bg=white&trim=5&t=letterbox&url=ssl%3Ai.otto.de%2Fi%2Fotto%2F06a05fc1-0554-5463-a8cf-6092a79214f0.jpg%3F%24Preset_Retargeting_640%24&feedId=56149&k=d27dd6627f26f5350af6afcec2c2afd71500c218">
在HTML代码中。图像在另一个服务器上是外部的。
我想用htts://www.example.com来掩盖它们mysubdomain.mydomain.com/productimages/d27dd6627f26f5350af6afcec2c2afd71500c218.jpg
1条答案
按热度按时间5n0oy7gb1#
要内部重写表单的URL:
第一个月
到
/folder/4c8370f2e926de654b1f0a08530bc6065e6a80d3.jpg
换句话说,捕获最初请求的URL中
k
URL参数的值,并将其用作要重写到的URL中的文件基名,然后可以在根.htaccess
文件顶部附近使用mod_rewrite执行类似以下的操作(指令的顺序可能很重要):这将忽略所有其他URL参数,只查找
k
URL参数。此参数可以出现在查询字符串中的任何位置。([\da-f]+)
-此正则表达式匹配k
URL参数的值,该参数看起来像十六进制字符串。在您的示例中,该参数的长度为40个字符-如果它始终为40个字符,则也可以在正则表达式中对其进行限制。例如([\da-f]{40})
-仅匹配长度为40个字符的十六进制字符串。您还可以在重写请求 * 之前 * 测试目标URL是否以文件形式存在。例如,在第一个URL之后添加以下 condition(
RewriteCond
指令):