Un proyecto have symfony5. Cuando me hospedé en el servidor, cambié la ruta de host predeterminada de https://example.com a https://example.com/public , porque index.php está en la carpeta /public. Desde entonces, mi sitio funciona solo en la página de inicio. Cuando navego a las otras páginas, Apache devuelve 404. "La URL solicitada /bio/ no se encontró en este servidor". Todo funciona en localhost pero no en el host.
Debe cambiar DocumentRoot en Apache para que apunte a la carpeta pública y, por lo tanto, la URL apuntará a la carpeta pública sin que esté presente en su URL.
Aquí hay un ejemplo de un VirtualHost Apache que le permite escuchar la url website.loc y apuntar a la carpeta pública vinculada a este sitio web (puede que no esté completa):
<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>Si no funciona, ¿puede darnos la configuración de su VirtualHost en Apache? Tenga cuidado con la información confidencial que puede estar presente.