如何使用/media/
将http://anothersite.com/media
中的所有文件定向到mod_rewrite
?我正在将临时站点的图像请求指向它的主站点目录。
以下不起作用:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^media/(.*) http://anothersite.com/$1 [QSA,L]
</IfModule>
没有太多搞乱Apache配置 - 如果这是一个蹩脚的问题,请原谅我。
答案 0 :(得分:2)
由于您要重定向到其他网站,我认为您需要调用mod_proxy
而不是mod_rewrite
。您可以将[QSA, L]
更改为[P]
。所以像这样:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^media/(.*) http://anothersite.com/media/$1 [P]
</IfModule>
否则,您的重写规则看起来不错。
可能更好的替代方法是加载并返回您重定向到的图像的本地PHP脚本。
在这种情况下,您的重写规则如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^media/(.*) /imageFetcher.php?img=$1 [QSA, L]
</IfModule>
然后您需要创建一个文件imageFetcher.php
。以下
<?php
//Do some checks to make sure this request came from your site, you won't want external users accessing this script
$img_file = $_GET['img'];
$img_data = file_get_contents("http://anothersite.com/$img_file");
//Possibly verify that $img_data is a valid image file using imgjpeg(), imgpng(), etc
header('Content-Type: image/jpeg'); //This assumes your image is a jpeg. If the image could be a png/gif/etc you'll need to do some logic to set the proper header.
echo $img_data;
exit();