.htaccess和codeigniter,错误404

时间:2017-03-19 17:36:35

标签: apache .htaccess codeigniter mod-rewrite

所以我的所有codeigniter东西都有404错误,而它在本地工作得非常好但是当在1and1共享主机上公共制作上传时,没有任何效果。我收到404错误。

我的设置如下:

www.myname.com/subfolder1/ 

< =这里是我的codeigniter root,是的,我希望codeigniter在普通" root"之后是一个级别。 / level

我在这个子文件夹1中有.htaccess:

RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\\.php|resources|robots\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ index.php?/$1 [L,QSA]

如果我尝试常规的codeigniter" url":

http://www.myname.com/subfolder1/index.php/admin/login

我注意到:

http://www.myname.com/admin/user/login

可能是我在最后一条规则上有问题,我试过了:

RewriteRule ^/subfolder1/(.*)$ index.php?/$1 [L,QSA]

没有成功。

我的config/config.php有这个:

$config['base_url'] = 'http://www.myname.com/';

我试图把http://www.myname.com/subfolder1放在那里但没有成功。

因为这个网站还在测试中,因为我对这一切都不熟悉...我决定从.htaccess中输入一个登录名/密码,所以我在根{{1}中也有这个第一级.htaccess } 这可能是个问题吗?我怎么能有这个第一级.htaccess和一个工作.htaccess for codeigniter?如果有,有人可以解释我怎么做?

http://www.myname.com/

谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

好的,所以我终于明白了我的麻烦=>重写应该是:

RewriteRule ^/(.*)$ subfolder1/index.php?/$1 [L,QSA]

是的,我需要将base_url更改为:

$config['base_url'] = 'http://www.myname.com/subfolder1/';

因为没有,没有路径(js / style)没问题。

答案 1 :(得分:0)

您还使用此代码

解决了问题
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /subfolder1/

RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|asset|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

你的base_url将是

$config['base_url'] = 'http://www.myname.com/subfolder1/';

从config.php文件中删除索引页面 它会像这样

$config['index_page'] = '';