phpenv中需配置伪静态以去除url中的index.php:一、apache需启用mod_rewrite模块、设置allowoverride all并配置.htaccess;二、nginx需在vhost配置中添加if重写规则并重启;三、可通过控制面板“网站→设置→伪静态”快捷启用。

如果您在使用phpEnv本地开发环境部署PHP站点,但URL仍显示带index.php或参数形式(如/index.php/article/123),则说明伪静态功能尚未启用。以下是针对phpEnv集成环境中Nginx与Apache两种服务器的伪静态规则配置步骤:
一、phpEnv中Apache伪静态配置
phpEnv默认Apache版本支持mod_rewrite模块,但需手动启用重写功能并配置.htaccess文件,使请求路径可被重写为干净URL。该方法依赖Apache配置允许Override指令且网站根目录存在有效重写规则。
1、打开phpEnv安装目录下的Apache配置文件,路径通常为:phpenv\apache\conf\httpd.conf。
2、查找LoadModule rewrite_module modules/mod_rewrite.so,确保该行未被注释(即前面无#号)。
3、查找所有AllowOverride None,将其全部替换为AllowOverride All,保存文件。
4、进入您的项目根目录,在其中新建名为.htaccess的文件(注意开头为英文点号,Windows下可用记事本另存为指定名称)。
5、向.htaccess中写入标准ThinkPHP或通用PHP伪静态规则,例如:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
二、phpEnv中Nginx伪静态配置
phpEnv内置Nginx时,默认不读取.htaccess,必须在站点对应的server块中直接嵌入rewrite指令。该方式要求Nginx配置支持内部重写,并确保PHP-FPM正确接收PATH_INFO或QUERY_STRING。
1、定位phpEnv中Nginx的虚拟主机配置文件,路径一般为:phpenv\nginx\vhost\your-site.conf(若未创建,可复制default.conf并重命名)。
2、在server { }块内找到location / { }区块,或在其内部新增该区块。
3、在location / { }中插入以下标准伪静态规则:
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?s=$1 last;
}
4、确认该配置文件中已存在PHP处理区块,例如:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
5、保存配置文件后,在phpEnv主界面点击“重启Nginx”按钮,使规则生效。
三、通过phpEnv控制面板快速启用伪静态
phpEnv图形界面提供快捷配置入口,无需手动编辑配置文件,适用于不熟悉服务器配置的用户。该方式本质是自动注入对应规则并触发服务重载,操作结果与手动配置一致。
1、启动phpEnv主程序,点击顶部菜单栏的“网站”选项卡。
2、在网站列表中找到目标站点,点击右侧“设置”按钮。
3、在弹出窗口中切换至“伪静态”选项卡。
4、从下拉菜单中选择对应框架类型,如“ThinkPHP”或“CodeIgniter”,phpEnv将自动填充适配规则。
5、点击“保存”,系统会提示Nginx/Apache已自动重启。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











