📜  codeigniter 的 .htaccess 文件 (1)

📅  最后修改于: 2023-12-03 15:14:11.725000             🧑  作者: Mango

CodeIgniter的 .htaccess文件

在CodeIgniter框架中,.htaccess文件对于配置和控制网站的访问非常重要。该文件主要用于URL重写和防止入侵,需要正确配置才能更好地保护网站安全性。

1. URL重写

CodeIgniter框架的URL重写需要使用Apache的mod_rewrite模块。以下是一个基本的 .htaccess文件示例,用于启用URL重写。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

这个文件将所有的URL重写到index.php文件,除了在文件系统中实际存在的文件和目录之外。

2. 去除index.php

当我们在浏览器前端输入CodeIgniter网站地址的时候,通常都需要在URL中加入“index.php”,如下所示:

http://www.example.com/index.php/home

这很麻烦。我们需要从URL中去除“index.php”,让网址更加简短和直观。在CodeIgniter框架中,可以通过如下的.htaccess文件配置来实现。

# 去除index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

在此配置中,所有经过Apache服务器处理的请求都将被重写,并将URL地址中的“index.php”删除。

3. 防止入侵

在CodeIgniter中,.htaccess文件还可以用于防止非法入侵攻击,如SQL注入和恶意请求等。以下是一个常用的防止入侵配置示例:

# 防止SQL注入和XSS攻击
Options +FollowSymLinks -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
 
# 禁止外部访问敏感目录
RewriteRule ^(admin|system|application) - [F,L]

此配置在将所有请求重写到index.php之前,添加了一些选项和规则来防止入侵。

以上就是关于CodeIgniter的.htaccess文件的介绍,对确保网站安全性和顺畅运行非常重要。