2012-03-09 54 views
1

我想设置我的本地主机为绝对URL从特定子域本地路径使用mod_rewrite如下重定向:国防部重写远程资源重定向到本地文件夹

http://resources.website.com/img/mypic.gif 

会重定向到

/Users/path-to-local-website/img/mypic.gif 

所以我的本地HTML可以阅读

<img src="http://resources.website.com/img/mypic.gif" /> 

,但指的是本地图像。

什么是RewriteCond /规则呢?谢谢

+0

您可以控制'resources.website.com'? – 2012-03-09 22:35:07

+0

我想你需要给我们更多的细节。我们在这里谈论几种不同的服务器吗?连接是什么? – 2012-03-09 23:06:35

+0

谢谢你对我的问题感兴趣,如果我不是很清楚,对不起。我的网站位于我拥有的域名和子域名上,但我想在我的计算机上保留一个功能完整的脱机副本。网站的某些页面使用我拥有的子域的绝对路径来调用资源,比如images.mywebsite.com/mypic.gif,并且我想设置我的本地apache conf文件来重写那些指向本地文件夹的链接图像被创建。我认为mod_rewrite可以完成这项工作,但我对语法不熟悉。任何帮助,将不胜感激。谢谢 – 2012-03-10 00:11:41

回答

1

因此,您有网站托管在云中的某个地方,并且您在其中进行开发的本地副本HTML当然是相同的。你可以不加修改地上传。它包含对您域中的文档的绝对引用,例如图像。

在浏览本网站的本地副本时,您希望图像来自本地副本而不是来自云端?

对不起,我不认为这是可能的,至少不与mod_rewrite。您的本地服务器正在将您的浏览器URL指向云端。当您的浏览器处理这些URL时,它会将请求发送到真实网站。您无法重写发送到其他服务器的请求!

您将不得不过滤掉正在重写URL的HTML,以便这些域指向本地服务器。

如果只涉及一个域,通常的解决方案不是在HTML中使用绝对链接,而是在网页中使用绝对链接。 (对于任何不跨域的链接,你应该使用它们作为页面的相对位置。)

解决方案是创建一个本地测试平台环境,它具有自己的DNS服务器,坐在你的局域网上,它将解析这些域名到您的本地服务器。您的浏览器因此被骗入您的本地服务器的这些域。

如果你的浏览器是在Linux或其他类Unix操作系统,你可以用simiply破解/etc/hosts这不是一个复杂的DNS设置:

# /etc/hosts on the machine where the browser and server are running 
127.0.0.1 foo.example.com bar.example.com xyzzy.example.com 

现在这三个主机名点回服务器。当您的浏览器(运行在同一台机器上)想要获取foo.example.com/img/dog.jpg时,它将连接到服务器127.0.0.1

配置与Alias该服务器转发/img/ URL的酌情:

# httpd.conf 
Alias /img/ /Users/path-to-local-website/img/ 

但现在,你只看到本地站点。不只是图像。一切都在本地引用。

+0

非常感谢您的回复。我想修改/ etc/hosts,但我不能在该机器上显示远程网站了。我希望找到一个解决方案,可以从网址中获取内容。你必须是对的,因为浏览器处理images/css/js请求是不可能的。再次感谢 – 2012-03-10 12:26:24

+0

您可以在虚拟机中进行设置。浏览主机操作系统,并看到部署的网站。在客户操作系统中浏览,'/ etc/hosts'可以让你浏览开发项目。 – Kaz 2012-03-10 17:37:44

+0

或者,在同一个操作系统镜像中有一个'chroot'-ed环境。 – Kaz 2012-03-10 17:38:14

2

只要您可以在域上计划.htaccess,您就可以使用mod_rewrite来完成这项工作:resources.website.com。把这段代码放进去。DOCUMENT_ROOT下htaccess文件的resources.website.com

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^(img/.*)$ http://localhost/$1 [R,L] 

,并确保img/文件夹及其内容是否有在本地主机DOCUMENT_ROOT。

+0

非常感谢您的回复。你在这里有一个有趣的想法,但我正在寻找可以脱机工作的东西(互联网断开),并允许我显示来自本地机器的web内容(img/js/css),而无需更改html中的绝对URL。这看起来很难实现。再次感谢 – 2012-03-10 12:29:26

+0

如果是这种情况,那么在/ etc/hosts中放入记录是最好的选择。 – anubhava 2012-03-10 12:48:01