簡體   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