codeigniter多个应用程序,带有通配符子域,mod_rewrite将子域重新映射到.php

时间:2012-02-15 02:14:19

标签: php apache codeigniter mod-rewrite

我有一个codeigniter项目,结构如下:

httpdocs/
  /application/
    /ggg/
      config/
      controllers/
      models/
      libraries/
      views/
      ...
    /sgaz/
      config/
      controllers/
      models/
      libraries/
      views/
      ...
    /index/
      config/
      controllers/
      models/
      libraries/
      views/
      ...
  /system/
  index.php

我正在尝试重写一个通配符子域以映射到其各自的应用程序..只是不知道如何去做。

我知道你可以为每个应用程序创建多个应用程序并使用多个(。*)。php文件(IE:ggg.php,sgaz.php,index.php)。但是有可能有一个index.php文件并使用mod_rewrite将子域中的调用重定向到其各自的应用程序环境吗? IE:http://ggg.mapitusa.com/user/login重定向(没有htaccess)到http://mapitusa.com/index.php/ggg/user/login

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试将以下内容添加到站点根目录中的.htaccess文件中。

RewriteEngine on
RewriteBase / 

RewriteCond %{HTTP_HOST} ^([^\.]+)\.mapitusa\.com$ [NC] 
#if not existing file or directory
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
#rewrite to index.php
RewriteRule ^ index.php/%1%REQUEST_URI] [L] 

如果您希望地址栏中的网址更改为http://mapitusa.com/index.php/ggg/user/login?,请将上面的RewriteRule替换为

RewriteRule ^ http://mapitusa.com/index.php/%1%REQUEST_URI] [L,R=301]