localsnake / course

Other
3 stars 2 forks source link

CodeIgniter删除URL中的index.php #3

Closed qiangrw closed 12 years ago

qiangrw commented 12 years ago

环境Ubuntu + Apache2

以下内容供大家参考,你不一定需要修改,仅仅最后在服务器上修改以达到美观的目的。

1.启用 Mod_rewrite 模块

在终端中输入如下指令:

sudo a2enmod rewrite 

2.修改AllowOverride

sudo vim /etc/apache2/sites-enabled/000-default

将第二个AllowOverride None 即Options Indexes FollowSymLinks MultiViews下面那个,修改为 AllowOverride All

3.重启apache

sudo /etc/init.d/apache2 restart.

4.修改CI的baseURL

即将application/config/config.php文件中的

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

修改为:

$config['index_page'] = '';

5.在根目录添加.htaccess文件

即在index.php所在的目录新建该文件,内容为:

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

第二行为规则的过滤,我们的index.php的同级目录下还有scripts文件夹和css等文件夹,这些需要过滤除去,以后添加其他文件夹时同样需要修改该文件。第三行/course/index.php表示笔者代码放在了网站根目录里面course子文件夹中,如果直接放在根目录则只需要/index.php即可

qiangrw commented 12 years ago

以上是CodeIgniter将index.php去除的方法,即原链接为 http://example.com/course/index.php/account/login 修改后即可变为

http://example.com/course/account/login 从而更加美观,如在设置中出现任何问题请在本ISSUE下提问。

cat810 commented 12 years ago

为啥是qiangrw open了issue,却是行哥close了呢?

Bankq commented 12 years ago

因为我们两个(且仅有我们两个)有administrative权限

cat810 commented 12 years ago

了解了