无法使用htaccess删除index.php

时间:2012-09-08 13:18:49

标签: php apache .htaccess codeigniter

当我尝试删除index.php时 和访问控制器:mysite.com/admin 我一直收到内部服务器错误。 我不知道为什么它不起作用。

的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /code/

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> 

网站配置

<Directory /home/mysite.com/public_html/>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from all
</Directory> 

Apache错误日志

[Sat Sep 08 15:24:30 2012] [error] [client 176.106.162.240] 
Request exceeded the limit of 10 internal redirects 
due to probable configuration error. Use 'LimitInternalRecursion' 
to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

3 个答案:

答案 0 :(得分:0)

更改.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /code/

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> 

进入这一个:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,NC]

我认为你不需要任何其他东西。

答案 1 :(得分:0)

如果不详细查看,我发现RewriteBase /code/

存在问题

尝试使用RewriteBase /

答案 2 :(得分:0)

You just need to create .htaccess file in project folder and write:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL 
RewriteRule ^(.*)$ index.php?url=$1 [PT,L] 

</IfModule>
<IfModule !mod_rewrite.c>
   #ErrorDocument 404 index.php
</IfModule>

 #And You don't need to define in base_url in config file:

 $config['base_url'] = '';// blank it.

 I hope it will work perfectly ...