我已将CodeIgniter网站上传到服务器上的public_html
文件夹,该文件夹正常运行。
现在,我创建了一个子域“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
中尝试了同样的事情,现在能够获取服务器错误日志。错误显示已达到最大重定向循环。
答案 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
页。
希望这会有所帮助..