无法从Codeigniter中的url中删除index.php

时间:2011-03-22 22:16:03

标签: .htaccess codeigniter codeigniter-url

我正在使用codeigniter,当我设置网站时,我在.htaccess文件中添加了必要的代码,以便从我的网址中删除index.php(默认)。我刚碰巧从我网站的备份文件中替换了我的public_html文件夹。由于我这样做,我无法让主页上的任何链接工作,除非在域名和网址的其余部分之间的网址中插入index.php,如http://www.obsia.com/index.php/contact/而不是http://www.obsia.com/contact/和有用。因此,在我的应用程序文件夹中的配置文件中,我更改了

$config['index_page'] = "";  

$config['index_page'] = "index.php";

并且所有链接现在似乎都有效。但是如何从URL中删除index.php。

以下是我的.htaccess代码:

RewriteEngine on
RewriteBase / 
RewriteCond $1 !^(index\.php|public|user_guide|robots\.txt|css)
RewriteRule ^(.*)$ /index.php?/$1 [L]

任何人都可以指出我正确的方向。非常感谢。

此致 ģ

2 个答案:

答案 0 :(得分:3)

你想做的事情可以这样做:

RewriteEngine on
RewriteBase / 
# Static content. Rewrite to - (don't change) and mark as last rule.
RewriteRule !^(index\.php|public|user_guide|robots\.txt|css) - [L]

# Do the rewrite.
RewriteRule ^(.*)$ /index.php?/$1 [L]

然而,更好的方法是:

RewriteEngine on
RewriteBase / 
# Only do the rewrite under the condition that the requested URL isn't a (real) file.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?/$1 [L]

答案 1 :(得分:2)

有很多ht访问文件...在我的情况下,我正在编辑错误的文件...你应该编辑项目内的文件...例如我在代码点火器上工作,项目名称是测试,所以在测试文件夹里面我有一个htaccess文件,在我的应用程序文件夹中,即测试/应用程序,还有另一个htaccess文件..我正在编辑应用程序文件夹中的访问文件,但我不得不编辑测试文件夹中的文件而不是测试/应用程序/.htaccess ....希望总和1发现这很有用..我花了半天时间来弄明白:(

干杯 KSP