Ubuntu 下apache2开启rewrite隐藏index.php

时间:2022-10-05 20:30:11

为了实现

http://www.example.com/route/route

而不是

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

需要开启apache2的rewrite模块

首先修改

/etc/apache2/apache2.conf

将文件中allowoverride none改成allowoverride all 利用vim替换

:%s/AllowOverride None/AllowOverride ALl

然后修改mods-enable配置,添加一个软件链接

cd /etc/apache2/mods-enable
ln -s ../mods-avaiable/rewrite.load rewrite.load

然后修改项目根目录下.htaccess文件的rewrite规则,添加

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

这是一个正则表达式,将访问网站的路径直接替代成index.php/路径参数形式,重启apache

service apache2 restart

ok了Ubuntu 下apache2开启rewrite隐藏index.php