需配置Web服务器伪静态功能实现友好URL:一、Apache启用mod_rewrite并设AllowOverride All,加.htaccess规则;二、Nginx在server块用try_files或rewrite;三、PHP内置服务器配router.php脚本;四、XAMPP/WAMP/MAMP通过控制面板启用模块;五、IIS用web.config配合URL Rewrite Module。

如果您在本地运行PHP项目时希望实现友好的URL地址,例如将/index.php?page=about转换为/about,则需要配置Web服务器的伪静态(URL重写)功能。以下是针对常见本地环境的多种配置方法:
一、Apache环境下启用mod_rewrite并配置.htaccess
Apache默认支持通过.htaccess文件实现URL重写,但需确保mod_rewrite模块已启用且AllowOverride权限允许重写规则生效。
1、确认mod_rewrite已启用:打开Apache配置文件httpd.conf,查找并取消注释以下行:LoadModule rewrite_module modules/mod_rewrite.so。
2、定位到配置段(通常为DocumentRoot所在目录),将AllowOverride None修改为:AllowOverride All。
立即学习“PHP免费学习笔记(深入)”;
3、在项目根目录下新建文件.htaccess,写入标准重写规则示例:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
二、Nginx环境下在server块中配置rewrite规则
Nginx不支持分布式.htaccess文件,所有重写规则必须集中写入主配置文件或站点server块中,由location指令配合try_files或rewrite指令实现。
1、打开Nginx配置文件(如nginx.conf或sites-available/default),定位到对应server块内的location /段。
2、替换原有index配置,添加如下语句:try_files $uri $uri/ /index.php?$query_string;
3、若需更精确匹配(如排除静态资源),可使用:location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?_url=/$1 last; } }
三、PHP内置服务器配合Router脚本模拟伪静态
PHP 5.4+ 提供的内置开发服务器不支持原生重写,但可通过启动时指定路由器脚本,将所有非静态资源请求统一转发至入口文件处理。
1、在项目根目录创建router.php文件,内容为:if (preg_match('/\.(?:png|jpg|jpeg|gif|css|js|woff2|ttf|svg|ico|map)$/i', $_SERVER["REQUEST_URI"])) {
return false;
} else {
include __DIR__ . '/index.php';
}
2、在终端执行启动命令:php -S localhost:8000 router.php
3、此时访问http://localhost:8000/about将被自动交由index.php处理,$_SERVER['REQUEST_URI']保留原始路径值。
四、XAMPP/WAMP/MAMP控制面板中启用rewrite模块
集成环境通常已预装mod_rewrite,但可能默认未激活;需通过图形界面或配置快捷方式启用模块,并验证.htaccess是否被读取。
1、打开XAMPP控制面板,点击Config → Apache (httpd.conf),搜索mod_rewrite并确认其行未被注释。
2、在WAMP右键托盘图标,依次选择:Apache → Apache Modules → rewrite_module,勾选启用。
3、重启服务后,在项目根目录放置含RewriteBase /your-project/的.htaccess(若子目录部署),避免重写路径偏差。
五、Windows IIS环境下使用web.config配置URL重写
IIS不识别.htaccess,需通过web.config文件定义rewrite规则,依赖URL Rewrite Module扩展支持。
1、确保已安装IIS URL Rewrite Module,可通过Microsoft官方下载安装。
2、在项目根目录创建web.config文件,写入以下XML结构:











