使用子域来访问codeigniter模块

时间:2012-08-10 04:48:50

标签: php .htaccess codeigniter

我有一个基于codeigniter的销售脚本,而且效果很好

我为它构建了一个api,并通过以下方式使用它:http://www.mysite/api/getdata

所以我现在想通过一个子domian访问这个API,例如:http://www.api.mysite/getdata

因为我认为解决方案是:将所有* .mysite.com重定向到mysite.com,然后修改.htaccess,但我不知道是真的吗?

感谢

----------------------------------------更新--- -------------------------------------

我当前的.htaccess文件

<IfModule mod_rewrite.c>
# Check if mod_rewrite module loaded and we can work with SEO urls
SetEnv HTTP_MOD_REWRITE On

RewriteEngine on

# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^yoursite\.com$ [NC]
# RewriteRule ^(.*)$ http://www.yoursite.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
#RewriteRule ^(.*)$ index.php/$1 [L]
RewriteRule ^(.*)$ ./index.php [L] 

</IfModule>

1 个答案:

答案 0 :(得分:0)

如果您正在使用某种托管服务来创建子域并将其指向文档根目录,则可以尝试创建www.api.mysite域并将文档根目录放在mysite的/ api目录所在的位置。这将解决使用htaccess文件的需要。或者,如果您可以访问虚拟主机配置,则可以执行相同的操作,为www.api.mysite创建vhost并将文档根目录指向/ api目录。

如果您无法控制这些内容,则需要设置 * .mysite.com 以指向与www.mysite相同的网站并使用htaccess文件。在文档根目录中的htaccess文件中的这样的东西应该可以解决这个问题:

RewriteEngine On
RewriteCond %{HTTP_HOST} (www\.)?api.mysite [NC]
RewriteCond %{REQUEST_URI} !^/api/
RewriteRule ^(.*)$ /api/$1 [L]