使用htaccess将另一个域名的图片加载到我的域名上?

6
我有2个域名和2个服务器,example.comexample2.com。例如: example.com是我的主要域名。我将网站图片上传到example2.com
我的当前图片路径是http://example.com/data/photos/sample.jpg。 但是我的所有图片都在http://example2.com/data/photos/sample.jpg 所以我创建了htaccess301重定向。
RewriteEngine on
RewriteBase /
RewriteRule ^data/photos/(.*)$ http://example2.com/data/photos/$1 [R=301]

但对我来说不起作用。因为我在所有页面中都调用了完整的URL。所以任何建议对我都非常有帮助。

更新了我的旧Htaccess文件。

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
RewriteEngine On
RewriteBase /
RewriteRule ^data/photos/(.*)$ http://example2/data/photos/$1 [R=301]
</IfModule>

@ Ravi Thapliyal,是的,我在example2.com域中有照片。 - Padmanathan J
@Ravi Thapliyal,这是我的拼写错误。现在我已经更新了它,但它仍然无法工作。 - Padmanathan J
1
“它不起作用”这样的描述是不够的。你遇到了什么确切的问题?是404错误还是与照片有关的其他问题?为什么不将您的图像链接更新为http://example2/data/photos/...呢? - anubhava
1
@anubhava 是的,好老的查找和替换。更不用说页面加载时间也会大大提高。 - Ravi K Thapliyal
1
@NathanSrivi 你不会在页面源代码中看到URL的更改。只是浏览器将从重定向的URL获取图像。 - Ravi K Thapliyal
显示剩余5条评论
2个回答

7
你需要重新排序你的规则。你的最终htaccess应该如下所示:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteRule ^(data/photos/.*)$ http://example2.com/$1 [R=301,NC,L]

    RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

它对我也不起作用。出了什么问题?如果我删除整个htaccess代码,那么网站就无法工作。请帮助我。 - Padmanathan J
你能提供网站地址,这样我就可以调试请求了吗? - Ravi K Thapliyal
在您的主页上,没有任何链接从data/photos加载图像,它们都来自themes文件夹。我需要一个出现问题的链接才能帮助您解决问题。 - Ravi K Thapliyal
1
是的,在我的浏览器上重定向正常工作。 URL 在我的地址栏中更改为 img.picture.lk。也许您只需要删除缓存或尝试使用另一个浏览器。 - Ravi K Thapliyal
它是从后台运行的。感谢@Ravi Thapliyal。非常感谢。 - Padmanathan J

6

用这个替换它

RedirectMatch 301 ^/data/photo/ http://example2.com/data/photo/

创建整个目录的301重定向。


2
由于匹配是静态的,您还可以使用Redirect 301 /data/photo http://example2.com/data/photo - Ravi K Thapliyal
如果图片从照片目录加载,则需要重定向到外部域路径。 - jafar pinjar
我喜欢这个解决方案的优雅。只需记住,RedirectMatch 需要 mod_alias,而不是更为常见的 mod_rewrite - nydame

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接