Apache 自动将URL引用从内部源更改为外部源

Apache 自动将URL引用从内部源更改为外部源,apache,.htaccess,redirect,lamp,cdn,Apache,.htaccess,Redirect,Lamp,Cdn,我想设置所有图像引用(实际上只是对特定文件夹的引用) e、 g.mywedomain.com/images/myimage.jpg,其中mywebdomain.com/images/myimage.jpg实际上指向mycdn.com/images/myimage.jpg 但是在代码/标记本身中保留内部引用。我想知道人们会怎么处理这件事 谢谢 这取决于它是否在同一台服务器上,以及您应该如何准确地处理它 如果它在同一台服务器上,并且在文档根目录中,使用mod_rewrite进行重写将是最简单的 在主

我想设置所有图像引用(实际上只是对特定文件夹的引用)

e、 g.
mywedomain.com/images/myimage.jpg
,其中
mywebdomain.com/images/myimage.jpg
实际上指向
mycdn.com/images/myimage.jpg

但是在代码/标记本身中保留内部引用。我想知道人们会怎么处理这件事


谢谢

这取决于它是否在同一台服务器上,以及您应该如何准确地处理它

如果它在同一台服务器上,并且在文档根目录中,使用
mod_rewrite
进行重写将是最简单的

在主目录
.htaccess
文件中:

RewriteEngine on
RewriteBase /

RewriteRule ^/images/(.+)$ /mycdn.com/images/$1 [L]
如果它不在文档根目录中,或者不在其他服务器上,那么重定向可能会更容易

RedirectMatch ^/images/(.+)$ http://mycdn.com/images/$1 
尽管这在客户机上很明显,如果他们正在查看请求日志的话。如果希望它是透明的,那么可以在服务器上代理请求

创建一个PHP文件(或您使用的其他语言,如LAMP,即PHP)


非常感谢。我将尝试mod_重写和php重写。这两个概念都很有用,我希望能适应它们。@肖恩·鲍威尔:是的,这两个概念总是值得去把握的。
<?php

$reqImage = $_GET['image'];
$mimeTypes = array('gif' => 'gif', 'jpg' => 'jpeg', 'jpeg' => 'jpeg',
                   'png' => 'png');

$matches = array();
if (preg_match("/^[-a-zA-Z0-9_]+\.(gif|jpg|png)$/", $reqImage, $matches)) {
   header('Content-Type: image/' . $mimeTypes[$matches[1]]);
   @readfile("http://mycdn.com/images/" . $reqImage);
} else {
   header('HTTP/1.0 404 Not Found');
}

exit;