如何将Docker中Nginx的PHP配置在XAMPP中实现相同效果?
在XAMPP中实现与Nginx配置等效的URL重写效果
你提供的Nginx配置核心是两点:指定项目根目录为/app/public、将不存在的请求转发到index.php,同时正确解析PHP文件。以下是在XAMPP(默认使用Apache)中实现相同效果的步骤:
1. 开启Apache的URL重写模块
打开XAMPP安装目录下的apache/conf/httpd.conf文件,找到以下行:
#LoadModule rewrite_module modules/mod_rewrite.so
去掉行首的#注释,保存文件后重启Apache服务。
2. 创建并配置.htaccess文件
在你的项目public目录(对应Nginx配置里的root /app/public)下创建.htaccess文件,写入以下内容:
RewriteEngine On # 实现Nginx中try_files $uri $uri/ /index.php?$query_string的效果 # 检查请求的文件或目录是否不存在 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将请求转发到index.php,并保留原查询参数 RewriteRule ^(.*)$ index.php?$query_string [L,QSA] # 设置默认首页为index.php DirectoryIndex index.php
注意事项
- 如果你的项目不是放在XAMPP的根目录(比如访问路径是
localhost/my-project),需要在RewriteEngine On之后添加一行:
替换RewriteBase /my-project/public//my-project/public/为你实际的项目公共目录路径。 - XAMPP默认已经配置好了PHP解析,不需要额外设置对应Nginx中
location ~ \.php$的规则,确保你的PHP文件在public目录下即可正常解析。
测试访问localhost/un-known-text,此时会自动转发到index.php,和你想要的效果一致。
内容的提问来源于stack exchange,提问作者Hey
相关产品推荐
相关产品推荐

