去除index.php的方法:1、在apache中,编辑httpd.conf配置文件,并在框架根目录下新建htaccess;2、在nginx中,配置“$config['index_page'] = '';”,然后重启nginx即可。
推荐:《php视频教程》
apache去掉index.php
1.编辑conf/httpd.conf配置文件
#loadmodule rewrite_module modules/mod_rewrite.so 把该行前的#去掉
同时对应directory下要配置 allowoverride all
2.在 ci 根目录下(即在index.php,system的同级目录下)新建立一个配置文件,命名为: .htaccess 内容如下:
rewriteengine onrewritecond %{request_filename} !-frewritecond %{request_filename} !-drewritecond $1 !^(index\\.php|robots\\.txt)rewriterule ^(.*)$ index.php/$1rewritecond %{request_filename} !-frewriterule ^(application|modules|plugins|system|themes) index.php/$1 [l]
3.把system/application/config/config.php 中$config['index_page'] = "index.php";改为$config['index_page'] = "";
4.重启apache
nginx去掉index.php
1.编辑nginx.conf文件
vi /usr/local/xxxxx/nginx/conf/nginx.conf#nginx去掉index.phplocation / {rewrite ^/$ /index.php last;#防止某些文件夹被直接访问rewrite ^/(?!index\\.php|robots\\.txt|uploadedimages|resource|images|js|css|styles|static)(.*)$ /index.php/$1 last;}
2.config/config.php下配置$config['index_page'] = '';
3..重启nginx
去掉默认的index方法,如图的url配置如:
config/routes.php,配置$route['catalogues/(:any)'] = "catalogues/index/$1";
其中(:any)表示匹配所有除ci保留关键字外的内容,后面的$1为index传入的参数内容。
多个参数采用多个(:any),如两个参数的为:$route['catalogues/(:any)/(:any)'] = "catalogues/index/$1/$2";
注:route规则如果同一目录下精确配置要在模糊配置上面,否则不起作用,如:
$route['catalogues/more'] = "catalogues/more";$route['catalogues/(:any)'] = "catalogues/index/$1";
注意事项
route规则如果同一目录下精确配置要在模糊配置上面,否则不起作用
nginx服务器不需要.htaccess文件
以上就是如何去除index.php的详细内容。