使用控制器进行域处理

时间:2014-01-04 00:46:49

标签: apache .htaccess mod-rewrite

我在我的mainsite上运行一个基于MVC的应用程序,我有另外两个域名(例如,www.a.com& www.b.com)

我希望能够通过mainsite.com/a/处理所有a.com的请求,并使用mainsite.com/b /

来处理类似的b.com

但是我不希望在浏览器中重定向/更改网址。

我一直在尝试使用mod_rewrite,但它似乎与我为mainsite.com设置的现有.htaccess规则发生冲突

this is my existing .htaccess

有人可以建议最好的方法吗?

1 个答案:

答案 0 :(得分:0)

在现有的.htaccess中,我没有看到任何重定向域a.comb.com的规则。但要做到这一点非常简单。

选择正确的主人www.a.coma.com

的条件
RewriteCond %{HTTP_HOST} ^(?:www\.)?a\.com$

防止无限循环

RewriteCond %{REQUEST_URI} !^/a/

并进行实际重写

RewriteRule ^ /a%{REQUEST_URI} [L]

只要您不使用R标记,就不应在浏览器中更改网址。

主持人b.com的规则类似。

更新

由于您已经拥有一个非常大的.htaccess文件,因此性能影响应该不会太大。如果你想确切知道,那就无法替代测量。

如果你想降低性能,你有两个选择

  • 将.htaccess文件中的指令移至主配置或虚拟配置文件,有关说明,请参阅When (not) to use .htaccess files
  • 在前端控制器中使用PHP进行一些自定义重写。当然,这取决于您使用的框架或路由机制。