从url中删除index.php

时间:2012-08-20 10:42:52

标签: .htaccess codeigniter

我正在使用codeigniter我想从url重写index.php。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]

我在.htaccess index.php中使用此代码时未删除。

但是当我从网址中手动删除index.php时,它可以正常工作。

4 个答案:

答案 0 :(得分:3)

删除'index.php'并替换为 config / config.php 中的'',即可完成此操作。

这应该是文件中创建的第二个密钥。这会更改您网站上的所有base_url()site_url()功能。

答案 1 :(得分:0)

  

当我在.htaccess index.php中使用此代码时,不删除。

这些规则只将请求路由到index.php,它没有做任何关于“删除”它的事情。这取决于您在自己的内容中生成的链接。如果由于某种原因,您需要处理外部链接并希望将客户端重定向到缺少index.php的新URL(如Google索引机器人),那么您可以执行此操作:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.php/([^\ ]+) 
RewriteRule ^index.php/ /%1 [L,R=301]

答案 2 :(得分:0)

更改 $ config ['index_page'] ='index.php'; 在config.php中 $ config ['index_page'] ='';

答案 3 :(得分:0)

AllowOverride All

确保目录部分的apache配置中存在allow override指令。如果位于指定目录中,则可以读取.htaccess文件。

例如

<Directory /var/www>
AllowOverride All
</Directory>

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride