【发布时间】:2014-04-21 13:15:31
【问题描述】:
我有一个使用 CodeIgniter 创建的站点,该应用程序安装在 Web 根目录 (/) 上。这是 GoDaddy 上的共享托管环境。为了创建开发环境,我复制了相同的内容并在 / 根目录中创建了一个 /development 文件夹。
现在,我的主站点运行良好,但是当我尝试使用子目录上的任何链接(链接到不同的域名)时,它总是给我一个 404 错误。
我已经尝试过 Stackoverflow 上给出的解决方案,但它不起作用。
重复:CodeIgniter won't run in a subdirectory
所以我的结构是:
/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/
有没有人知道或尝试过这样的设置?
【问题讨论】:
标签: php apache .htaccess codeigniter mod-rewrite