使用子域访问 Codeigniter 的模块


use subdomain to access codeigniter's modules

我有一个基于代码点火器的销售脚本,它运行良好

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

所以我现在想通过子域访问这个 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>

如果您使用的是某种托管服务,允许您创建子域并将其指向文档根目录,则可以尝试创建一个www.api.mysite域,并使文档根目录位于mysite的/api目录所在的位置。这将绕过使用 htaccess 文件的需要。或者,如果您有权访问虚拟主机配置,则可以执行相同的操作,为www.api.mysite创建虚拟主机并将文档根目录指向/api 目录。

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

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