如何仅在后端重写URL

时间:2013-01-20 03:35:19

标签: apache mod-rewrite

我正在尝试采用这种重写规则,只在后端重写(句柄),我不希望用户的URL实际更改。我的目标是拿i.website.com并将其放在CDN上,但不要将其他网站留在CDN上。现在i.website.com转发到www.website.com/images/但是我想让它在后端处理,并且当用户访问i.website.com/asdasd.jpg时它就不会这样做。转发URL以便CDN有效吗?

我认为我做对了......无论如何,这是我目前的重写,也许有更好的方法来做到这一点,我愿意接受建议并愿意回答任何进一步的问题。

由于

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

1 个答案:

答案 0 :(得分:1)

根据您的评论,我认为这种情况可能正是您所寻找的:

在您的本地服务器上,您可以像现在一样托管www.website.com,包括www.website.com/images。

在CDN上,您托管i.website.com。您可以设置CDN从www.website.com/images中提取i.website.com的内容,就像您现在的重写规则一样(现在您的服务器上不需要重写规则)。

唯一的问题是,当您说“该应用程序旨在通过www.website.com/images/并将其提供给正确的脚本,而不是i.website.com”时,您的意思是该应用程序/ script从www.website.com/images中提取内容以进行处理,或者您是指应用程序/脚本在www.website.com/images上写出链接到图像的网页,而不是i.website.com上的网页

如果只是需要从www.website.com/images/提取内容的应用程序/脚本问题,只要网站的页面可以使用i.website.com的图像链接编写,那就没问题。在这种情况下,最后一部分是你基本上反转你的重写规则,将所有外部流量从www.website.com/images/引导到i.website.com,以便处理旧链接,同时保持内部流量(你的应用程序/脚本)来自www.website.com/images/.