如何为多站点Codeigniter应用配置重定向?

时间:2019-02-20 08:14:41

标签: php codeigniter

我有多个像这样的codeigniter网站设置:

  1. / CI_Site1
  2. / CI_site1 / CI_Site2
  3. / CI_site1 / CI_Site3

现在要使用我的第二个和第三个站点,我必须这样做:

mydomain.com/CI_Site2/index.php/controller/function

如果我不放置index.php,那么它将在根站点(又名CI_Site1)中抛出404。

我应该如何配置htaccess或apache站点conf或CI配置文件,而不必添加index.php?

我认为第一步应该是将CI_site1中的路由配置为不处理其他2的请求,但我不知道如何。这是希望Codeigniter专业人士能为我提供帮助。

谢谢。

编辑:我知道如何使用htaccess从网址中删除index.php。但这不是这里的问题。如何防止CI_site1处理针对CI_site2和CI_site3的请求?

3 个答案:

答案 0 :(得分:1)

只需在文件中添加以下代码并将其保存为.htaccess,然后将其上传到Project文件夹

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]

确保您的服务器mod_rewrite已打开。

答案 1 :(得分:0)

您尝试使用路线吗?

$route['CI_Site1'] = '/CI_Site1';
$route['CI_Site2'] = '/CI_site1/CI_Site2';
$route['CI_Site3'] = '/CI_site1/CI_Site3';

答案 2 :(得分:0)

我意识到不需要任何额外的配置。使用.htaccess删除index.php就足够了。我的问题是apache在默认配置下阻止了.htaccess文件。编辑apache2.conf以允许处理htaccess文件解决了我的问题。