使用htaccess将其他域图像加载到我的域?

时间:2015-02-23 06:36:20

标签: php apache .htaccess mod-rewrite redirect

我有2个域名和2个服务器 example.com example2.com 。例如: example.com 是我的主要域名。我将我的网站图片上传到 example2.com

我当前的图片路径http://example.com/data/photos/sample.jpg 但我的所有图片都在http://example2.com/data/photos/sample.jpg

所以我创建了htaccess 301 重定向

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>

2 个答案:

答案 0 :(得分:5)

您需要重新排序规则。你的最终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>

答案 1 :(得分:3)

用这个改变它

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

为整个目录创建301。