开启Apache的Rewrite
1、在终端中执行指令后,即启用了 Mod_rewrite 模块:
sudo a2enmod rewrite
或者,也可以通过软连接启用 Mod_rewrite 模块(apache默认是加载了的,进入目录执行 ll 可查看)。两者二选一。用指令操作就是:
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
2、打开apache配置文件
sudo vim /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
2.1 修改配置文件
<Directory /var/www/> 改为 <Directory /var/www/html/> //实际目录根据网站根目录而定,我的默认是/var/www/html为Web的根目录,所以我改成<Directory /var/www/html/>
AllowOverride None 改为 AllowOverride All
AllowwOverride None 则会完全忽略 .htaccess 文件,自然项目中所定义的 rewrite 规则也就不能生效了
3、在网站的根目录下建立.htaccess文件,比如下面两个例子:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
4、重启apache服务
sudo service apache2 restart