如何摆脱codeigniter中的index.php?

时间:2013-09-05 19:41:37

标签: php codeigniter

我正在创建我的第一个codeigniter项目。我非常喜欢这个框架。但是,无论如何要从网址中删除 index.php 页面?旁边.htaccess?就像我使用表单助手类生成表单一样。使用此代码

<?= form_open('site/login'); ?>

网址出现了

<form action="http://localhost/index.php/site/login" method="post" accept-charset="utf-8">

如果有人分享如何做的话会很棒。感谢

3 个答案:

答案 0 :(得分:1)

不可能没有 .htaccess,但为什么你没有访问它?您可以将其放在index.php的目录中以获得所需的效果。

因为我不喜欢死链接,所以我会引用官方文档:

  

删除index.php文件

     

默认情况下,index.php文件将包含在您的网址中:

     

example.com/index.php/news/article/my_article您可以轻松删除   这个文件使用.htaccess文件和一些简单的规则。这是一个   这种文件的例子,使用“否定”方法   除指定的项目外,所有内容都被重定向:

 RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt)
 RewriteRule ^(.*)$ /index.php/$1 [L] In the above example, any HTTP
 request other than those for index.php, images, and robots.txt is
 treated as a request for your index.php file.

答案 1 :(得分:1)

这不会从form_open()的输出中删除它。

如果您使用.htaccess重新路由请求,请确保您还将配置文件中的index_page设置为空字符串。

$config['index_page'] = '';

我的index_page配置项设置为'',form_open()方法不会在表单操作URL中放置index.php。

答案 2 :(得分:0)

RewriteEngine on
RewriteBase /
# Hide the application and system directories by redirecting the request to 
index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

您也可以参考以下链接:

https://www.formget.com/codeigniter-htaccess-remove-index-php/

http://snipplr.com/view/5966/codeigniter-htaccess/