带有codeigniter的主域,没有codeigniter的子域

时间:2013-12-05 07:37:22

标签: php .htaccess codeigniter

我已将CodeIgniter网站上传到服务器上的public_html文件夹,该文件夹正常运行。

http://my-site-name-here.com

现在,我创建了一个子域“sub”,public_html中有一个名为“sub”的目录。我在该文件夹中上传了一个非CodeIgniter应用程序 如果我尝试转到http://sub.my-site-name-here.com,它会给我“500 Internal server error” 如果我尝试转到http://my-site-name-here.com/sub,它会为找不到页面的CodeIgniter响应。

如何设置不使用CodeIgniter的子域?

更新

我正在尝试不同的htaccess重写。目前的.htaccess内容是:

RewriteEngine on
RewriteBase /
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|img/current|css/current|js/current|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteCond %{HTTP_HOST} ^(www\.)?spiders\.haitspirit\.com$
RewriteCond %{REQUEST_URI} !^/spiders
RewriteRule ^(.*)$ /spiders/$1 [L]

更新2:

我还将所有CodeIgniter目录和文件(index.php除外)移动到名为“main”的目录中并相应地编辑index.php。仍然是主站点工作,子域名不行。

更新3:

我在localhost中尝试了同样的事情,现在能够获取服务器错误日志。错误显示已达到最大重定向循环。

1 个答案:

答案 0 :(得分:1)

我得到了解决方案。在这里粘贴。它可以帮助使用CodeIgniter包作为主域和非CodeIgniter包作为子域并且无法重定向的其他人。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/sub/ [NC]
RewriteRule ^(.*)$ /index.php/errors/page_missing [L]

RewriteCond %{HTTP_HOST} ^sub\.sitename\.com$
RewriteCond $1 !^sub/
RewriteRule ^(.*)$ /sub/$1 [L]

RewriteCond $1 !^(index\.php|img|css|js|robots\.txt|sub)
RewriteRule ^(.*)$ /index.php/$1 [L]

其中sub是子域名(假设同名域也用于目录),sitename是域名。

如果有人试图转到http://sitename.com/sub,那么它会显示来自CodeIgniter的404 Not found页。

希望这会有所帮助..