Bonjour à tous,
Je rencontre un problème lors du déploiement d'une application Laravel sur un hébergeur cPanel fourni par CCNTECHNOLOGIES.
Le problème se situe au niveau du fichier .htaccess qui se trouve à la racine du projet. Ce fichier est censé rediriger toutes les requêtes entrantes vers le dossier public. Cependant, lorsque l'URL inclut le mot public, le navigateur affiche l'erreur suivante :
ERR_TOO_MANY_REDIRECTS
Voici le contenu du fichier .htaccess à la racine du projet :
<IfModule mod_rewrite.c> RewriteEngine On # Redirect everything to the /public directory RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L]</IfModule>
Et voici le contenu du fichier .htaccess situé dans le dossier public :
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]</IfModule>
Ce que j’ai essayé :
Mon objectif : Faire en sorte que toutes les requêtes soient redirigées correctement vers le dossier public et éviter l'erreur ERR_TOO_MANY_REDIRECTS.
Auriez-vous une solution ou une idée pour résoudre ce problème ? Merci d’avance pour votre aide !
Les configurations que tu definis dans ton .htaccess à la racine redirige toutes les requêtes vers le dossier public et le serveur essaie de les rediriger encore et encore, cela crée une boucle infinie. Ce qui est la cause de ton erreur
ERR_TOO_MANY_REDIRECTS
La ligne problematique dans ce fichier est
RewriteRule (.*) public/$1 [L]
Car cette règle redirige toutes les requêtes (y compris celles qui contiennent déjà /public/) vers le dossier public, ce qui crée une boucle infinie.
Essaye de modifier ton fichier .htaccess à la racine ainsi voir
<IfModule mod_rewrite.c> RewriteEngine On # Ne redirige pas si l'URL contient déjà /public RewriteRule ^public/ - [L] # Redirige les autres requêtes vers le dossier public RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ /nom_du_projet/public/$1 [L]</IfModule>
Apres ces modifications tu vides le cache
php artisan optimize:clear
Veuillez vous connecter ou créer un compte pour participer à cette conversation.