GoDaddy + CodeIgniter +子域名

时间:2015-05-26 22:31:10

标签: .htaccess codeigniter

我尝试使用CodeIgniter框架(托管GoDaddy - Linux)删除index.php,该框架当前已安装到:example.com/ci

我已将base_url中的application/config/config.php声明为http://example.com/ci/

以下是.htaccess的最新测试输入:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

请注意,域CI安装在而不是我的托管根目录下。 CI文件夹的实际路径为:root/mydomain/ci

今天花了大部分时间尝试过多的解决方案&#34;我开始怀疑这是否可能与GoDaddy有关,或者我的情况可能是某种方式唯一的。

非常感谢任何建议!

编辑:我最接近解决此问题的方法是使用以下.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /clone/

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]

RewriteRule ^index.php/(.*)$ [L]
</IfModule>

..同时将我的base_url设置为mydomain.com/clone/(当然使用http://)并从index_page中删除index.php。导航到mydomain.com/clone可以正常工作,但导航到属于软件一部分的两个页面会导致404页面。

2 个答案:

答案 0 :(得分:0)

您的评论的答案,您需要添加重写条件来访问sites /目录。 CodeIgniter正在寻找控制器文件夹中的网站。

RewriteCond $1 !^(index\.php|sites)

您还可以添加资源文件夹的名称,例如图像/视频等。

答案 1 :(得分:0)

更改此

config.php

  1. $config['base_url'] = '';
  2. $config['index_page'] = '';
  3. 然后在.htaccess

    RewriteEngine on
    Options -Indexes
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    或者您也可以使用.htaccess

    编辑01

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