Symfony 4 RESTful API在PHP内置服务器正常,XAMPP路由全报404求助
解决Symfony 4 REST API在XAMPP下返回404的问题
嘿,刚接触Symfony遇到这种情况太正常了——毕竟内置服务器是Symfony自己接管路由,而Apache需要额外配置才能正确转发请求到Symfony的前端控制器。你的猜测没错,这大概率和.htaccess以及Apache的配置有关,我给你一步步梳理解决方案:
1. 先确认Apache的mod_rewrite模块是否开启
XAMPP默认可能没开启这个关键模块,它是实现URL重写的核心:
- 打开XAMPP控制面板,点击Apache的「Config」按钮,选择
httpd.conf - 在文件里搜索
LoadModule rewrite_module,找到这一行:#LoadModule rewrite_module modules/mod_rewrite.so - 把前面的
#删掉,保存文件后重启Apache
2. 检查public目录下的.htaccess文件
Symfony 4的路由重写规则默认放在public/.htaccess里,你要确保这个文件存在,且内容正确(默认的Symfony项目会自带这个文件,如果你不小心删了,可以重新创建,内容如下):
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ RewriteRule .* - [E=BASE:%1] RewriteCond %{HTTP:Authorization} .+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ - [L] RewriteRule ^ %{ENV:BASE}/index.php [L] </IfModule>
3. 配置Apache允许目录使用.htaccess规则
如果你的项目放在XAMPP的htdocs子目录(比如htdocs/symfony-api),需要让Apache允许该目录的.htaccess生效:
- 打开
httpd.conf,找到对应项目public目录的<Directory>块(如果没有就自己加):<Directory "C:/xampp/htdocs/symfony-api/public"> AllowOverride All Require all granted </Directory> - 这里的路径要换成你自己的项目public目录绝对路径,保存后重启Apache
4. (推荐)配置虚拟主机指向public目录
这是更规范的做法,能避免子目录带来的路径问题:
- 打开XAMPP的Apache配置,选择
httpd-vhosts.conf - 添加一个虚拟主机配置:
<VirtualHost *:80> ServerName symfony-api.local DocumentRoot "C:/xampp/htdocs/symfony-api/public" <Directory "C:/xampp/htdocs/symfony-api/public"> AllowOverride All Require all granted </Directory> </VirtualHost> - 打开你的系统hosts文件(Windows在
C:\Windows\System32\drivers\etc\hosts,Mac/Linux在/etc/hosts),添加一行:127.0.0.1 symfony-api.local - 重启Apache,之后直接访问
http://symfony-api.local/your-route就能正常访问了
快速测试方法
如果上面的配置做完还是有问题,可以先直接访问http://localhost/symfony-api/public/index.php/your-route:
- 如果这个地址能正常返回数据,说明你的Symfony路由本身没问题,只是Apache的重写规则没生效,再回头检查前面的步骤
- 如果这个地址也返回404,那可能是你的Symfony路由配置有问题,比如路由注解没写对,或者没清除缓存(可以运行
php bin/console cache:clear清除缓存)
内容的提问来源于stack exchange,提问作者Félix Daniel
相关产品推荐
相关产品推荐

