繁体   English   中英

如果在/根文件夹中还安装了CodeIgniter,则子目录中的CodeIgniter会给出404错误

[英]CodeIgniter in Sub-directory gives 404 error, when CodeIgniter is installed in / root folder also

我有一个使用CodeIgniter创建的网站,该应用程序安装在Web根目录(/)上。 这是GoDaddy上的共享托管环境。 为了创建开发环境,我将其复制并在/根目录中创建了/ development文件夹。

现在,我的主站点运行良好,但是当我尝试使用子目录上的任何链接(链接到另一个域名)时,它总是给我一个404错误。

我已经尝试过Stackoverflow上给出的解决方案,但是它不起作用。

重复的: CodeIgniter不会在子目录中运行

所以我的结构是:

/system
/application1
/index.php
/.htaccess
/development/application2
/development/index.php
/development/.htaccess

顶级.htaccess包含:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ index.php/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

子目录.htaccess是:

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

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 index.php
</IfModule> 

(我什至尝试了在StackOverflow上给出的建议,以在INDEX.PHP文件前面添加./,以及其他故障单中提供的建议)

子目录中的$ system_path指向顶层/ system文件夹,以避免发生任何冲突。

主页可以正确显示在网站上,甚至可以正确显示为以下子域的主页:

http://www.mysite.co/ 
http://development.mysite.co/

但是创建的子域中的任何链接都显示404错误,但我无法使任何链接正常工作。

我在GoDaddy的共享服务器(Linux)上托管,并安装了PHP 5.3。 主根位于以下位置(绝对路径):/ home / content / 22/88885555 / html

我创建的子目录位于(绝对路径):/ home / content / 22/88885555 / html / development

我将路径用作:

/
/development/

有谁知道或尝试过这种设置?

在/index.php中,修改以下行:

$system_path = "/path/to/your/public_html/system";
$application_folder = "/path/to/your/public_html/application1";

现在编辑/application1/config/config.php

找到以下几行,然后更改为您的域名。

$config['base_url'] = 'http://mysite.co';
$config['index_page'] = ''; 

打开/.htaccess并修改以下内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

ReWriteCond %{HTTP_HOST} mysite.co
RewriteCond $1 !^(index\.php|development)
ReWriteRule ^(.*)$ /index.php/$1 [L]

ReWriteCond %{HTTP_HOST} development.mysite.co
ReWriteCond %{REQUEST_URI} !development/

ReWriteRule ^(.*)$ development/index.php/$1 [L]

现在为您的子目录应用程序。

打开/development/index.php

修改以下几行以符合您的设置:

$system_path = "/path/to/your/public_html/system";
$application_folder = "/path/to/your/public_html/development/application2";

注意system_path与application1相同吗?

修改application2的配置文件。 打开/development/application2/config/config.php并将基本URL修改为测试站点。

$config['base_url'] = 'http://development.mysite.co';

最后删除/development/.htaccess。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM