将特定子域请求重定向到主服务器

时间:2012-08-06 03:54:43

标签: apache .htaccess mod-rewrite requirejs

我希望我的移动网络应用程序使用与我的网络应用程序相同的资源(模型,集合等),但我得到的是404。我正在使用RequireJS(加载这些文件),以及Backbone和jQuery Mobile。

我的应用程序结构如下:

/
  /js
    /models
    /collections
  /mobile
    /js

我的子域m.mysite.com指向/mobile。我希望m.mysite.com/js/models的所有请求都重定向到mysite.com/js/models,同样适用于collections和其他人。

我已经提出了以下代码,但它无法正常工作,我仍然在使用404:

# Redirect all calls to '/models' or '/collections' to regular domain
RewriteRule local\.m\.mysite\.co/js/(models|collections|helpers|objects)/(.*?)$ mysite.co/js/$1/$2 

[L,QSA,R=301]

注意:我使用local.为我的本地服务器添加了前缀。

1 个答案:

答案 0 :(得分:1)

您无法与RewriteRule中的主机名匹配,您需要使用RewriteCond并匹配%{HTTP_HOST}

RewriteCond %{HTTP_HOST} ^local\.m\.mysite\.com$ [NC]
RewriteRule ^js/(models|collections|helpers|objects)/(.*?)$ http://mysite.co/js/$1/$2 [L,QSA,R=301]