在Ubuntu环境下配置PHP的URL重写,其实核心就两个东西:Apache服务器和它的mod_rewrite模块。很多人一开始觉得这玩意儿挺复杂,其实拆开来看,步骤就那么几步,而且每一步都很明确。下面直接上操作流程。

确认Apache已经就位
如果系统里还没装Apache,先跑下面这条命令,一口气装好:sudo apt-get update sudo apt-get install apache2装完之后,Apache就已经在后台等着了。
开启mod_rewrite模块
这个模块默认是没激活的,需要手动启用。命令很简单:sudo a2enmod rewrite激活之后,Apache才会认
.htaccess文件里的重写规则。配置虚拟主机
找到Apache的虚拟主机配置文件,一般都在/etc/apache2/sites-a vailable/目录下。以默认的000-default.conf为例,用编辑器打开:sudo nano /etc/apache2/sites-a vailable/000-default.conf在
标签里面,找到DocumentRoot这一行,把它改成你项目存放的真实路径,比如:DocumentRoot /var/www/html/myproject改完保存退出。
创建或编辑.htaccess文件
在你的项目根目录(比如/var/www/html/myproject)下,新建一个名为.htaccess的文件,然后把下面这段规则写进去:RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] 这套规则的意思很直白:把所有不是真实文件、也不是真实目录的请求,全部转发到
index.php去处理。很多PHP框架(比如Lara vel、ThinkPHP)用的就是类似的逻辑。重启Apache使配置生效
最后一步,别忘了让Apache重新加载配置:sudo systemctl restart apache2搞定。现在你可以在Ubuntu下正常使用PHP的URL重写了。
当然,具体项目可能有不同的需求,比如需要指定特定的重写规则、排除某些路径,或者后端框架自带了一套路由机制。上面的步骤是最基础、最通用的配置方式,能覆盖绝大多数场景。如果遇到特殊的路径规则,只需要在.htaccess里追加相应的RewriteRule即可,原理是一样的。