php - Symfony 项目仅适用于主页。当我导航到其他页面时,Apache 返回 404
问题描述
一个有 symfony5 的项目。当我托管到服务器时,我将默认主机路径从https://example.com更改为https://example.com/public,因为 index.php 位于 /public 文件夹中。从那时起,我的网站只能在主页上运行。当我导航到其他页面时,Apache 返回 404。“在此服务器上找不到请求的 URL /bio/”。一切都在本地主机上运行,但在主机上却不行。
解决方案
您应该将 Apache 上的 DocumentRoot 更改为指向公用文件夹,因此,该 url 将指向公用文件夹,而不会出现在您的 url 中。
这是一个 VirtualHost Apache 的示例,它允许您收听 website.loc url 并指向链接到该网站的公用文件夹(它可能不完整):
<VirtualHost *:80>
DocumentRoot "/path/to/website/public/"
ServerName webiste.loc
DirectoryIndex index.php
ErrorLog "/var/log/httpd/error_log"
CustomLog "/var/log/httpd/access_log" common
<Directory "/path/to/website/public/">
AllowOverride none
Order allow,deny
Allow from all
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
</Directory>
</VirtualHost>
如果它不起作用,您能否给我们您在 Apache 上的 VirtualHost 的配置?注意可能存在的敏感信息。
推荐阅读
- java - 如何在 logback 中的应用程序关闭时滚动日志文件?
- angular - 违规点击处理程序采用 angular 5 和 chrome zone.js
- python - 来自元组的 Pandas 数据帧 MultiIndex 附加到 HDF5 无法匹配现有表结构
- rest - 我可以为 WaypointParameterType 使用邮政编码吗?
- javascript - 如何将 Kotlin Javascripts“Date::toLocaleDateString”与“LocaleOptions”一起使用?
- javascript - 打开行选择对话框 [材料表]
- python - 相当于 numpy 数组的 pandas read_sql_query?
- python - ModuleNotFoundError:没有名为“matplotlib”的模块,但可以在终端中导入它
- ansible - 如何在模板中使用 AWS 标签?
- node.js - 使用 Node-Cron 运行带有 Node 的 JS 文件