.htaccess RewriteBase无效

时间:2015-08-22 07:36:17

标签: apache .htaccess codeigniter

我正在使用.htaccess删除我的CodeIgniter项目的index.php。我让它在localhost中正常工作但在我的托管中失败了。我托管给我的结构是这样的:

/
-- domains
---- mydomain.com
------ public_html
-------- .htaccess
-------- (the rest of my CI site)

在localhost中我的.htaccess是这样的:

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

我尝试过:

RewriteBase /
RewriteBase /domains/
RewriteBase /domains/mydomain.com/
RewriteBase /domains/mydomain.com/public_html/
RewriteBase /mydomain.com/
RewriteBase /mydomain.com/public_html/
RewriteBase /public_html/

但我无法使其发挥作用。我已经向我的主机提供商询问了他们说已经启用了MOD_REWRITE。

非常感谢任何想法。

编辑1

我的索引页面(mydomain.con - 主控制器,索引函数)正在正确加载,但任何其他控制器都失败。

使用

RewriteBase /

它显示了错误:

  

未指定输入文件。

任何其他RewriteBase显示:

  

内部服务器错误

     

服务器遇到内部错误或配置错误,无法完成您的请求。

     

请与服务器管理员webmaster@mydomain.com联系,告知他们错误发生的时间,以及可能导致错误的任何操作。

     

服务器错误日志中可能提供了有关此错误的更多信息。

     

此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误。

     

mydomain.com端口80上的Apache / 2服务器

1 个答案:

答案 0 :(得分:1)

由于@Fuzzzzel的评论引导我this,我已经解决了这个问题。

所以我将.htaccess改为

DirectoryIndex index.php

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt)

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

它终于奏效了。谢谢! :)