Mon installation de laravel fonctionnait bien hier mais aujourd'hui, l'erreur suivante apparaît:
Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Est-ce que quelqu'un sait où je vais mal?
Créez et mettez ce fichier .htaccess dans votre dossier d'installation de laravel.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
J'ai rencontré le même problème, puis je fais comme la solution de @lubat et mon projet fonctionne bien. : D Ma configuration virtualhost:
<VirtualHost *:80>
ServerName laravelht.vn
DocumentRoot D:/Lavarel/HTPortal/public
SetEnv APPLICATION_ENV "development"
<Directory D:/Lavarel/HTPortal/public>
DirectoryIndex index.php
AllowOverride All
Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Avez-vous essayé de changer le fichier .htaccess suggéré par laravel si celui par défaut ne fonctionne pas? J'ai eu ce problème similaire et l'ai changé en
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
et ça a fait :)
Vérifiez votre configuration d'hôte virtuel . Pour Ubuntu, vous pouvez le trouver à /etc/Apache2/sites-available/yourlaravel.conf
<VirtualHost *:80>
ServerName yourlaravel.com
DocumentRoot "/path/to/your/laravel/project/public"
ServerAlias *.yourlaravel.com
<Directory "/path/to/your/laravel/project/public">
AllowOverride All
Require all granted
</Directory>
La ligne de clé est Require all granted
à l'intérieur de <Directory>
.
J'espère que ça aide!
Pour ceux qui utilisent Mamp ou Mamp pro:
Open MAMP Pro
Click on “Hosts”
Click on “Extended” (UPDATE: Only if you are using MAMP Pro 3.0.6)
Check “Indexes”
Click “Save”
That’s it! Reload your localhost starting page and it should work properly.
Il a été résolu pour moi avec le fichier public/.htaccess par défaut de Laravel en ajoutant une ligne supplémentaire:
Le fichier /public/.htaccess
reste comme suit:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
DirectoryIndex index.php # This line does the trick
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Avec moi, le problème semblait être lié au fait qu’il n’y avait pas de fichier index.php dans le dossier public_html. Lorsque j’ai tapé cette adresse cependant: http://azxcvfj.org/public , cela a fonctionné (cette adresse n’est qu’un exemple. Elle ne pointe nulle part). Cela m'a fait réfléchir et je l'ai finalement résolu en procédant comme suit.
J'ai créé un fichier .htaccess dans le dossier racine de l'application (le dossier public_html) avec le contenu suivant:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]
</IfModule>
Et cela a fonctionné. En gros, avec ce fichier, vous dites au serveur (Apache) que chaque fois que quelqu'un essaie d'accéder au dossier HTML public ( http://azxcvfj.org ), un utilisateur redirigé est redirigé vers http: //azxcvfj.org/public/index.php
Ajoutez simplement un fichier .htaccess
dans votre chemin de projet racine avec le code suivant pour rediriger le dossier public:
.HTACCESS
## Redirect to public folder
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
Très simple mais travaille pour moi sur mon serveur.
Cordialement!
Pour moi, c’était juste parce que j’avais un dossier dans mon public_html nommé de la même manière que cette route!
alors s'il vous plaît vérifiez si vous n'avez pas de dossier avec l'adresse de cette route!
espérons être utile
Commencez par mettre à jour votre configuration d'hôte virtuel.
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html/example-project/public
<Directory /var/www/html/example-project/public/>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Ensuite, modifiez l'autorisation et la propriété de l'actif, comme illustré ci-dessous.
$ Sudo chgrp -R www-data /var/www/html/example-project
$ Sudo chmod -R 775 /var/www/html/example-project
Dans votre VirtualHost, écrivez DocumentRoot pour qu'il pointe vers votre application Laravel dans vos répertoires personnels. De plus, vous devez ajouter le répertoire indiqué ci-dessous, avec votre propre chemin:
<Directory /home/john/Laravel_Projects/links/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
La deuxième étape consiste à accéder à votre projet Laravel et à exécuter la commande suivante.
Sudo chmod -R 777 storage bootstrap/cache
A la fin, redémarrez votre Apache2:
Sudo service Apache2 restart
Il est fort probable que si toutes les réponses ci-dessus ne vous ont pas aidé et que vous utilisez une validation de requête, vous avez oublié de mettre l'autorisation à true.
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class EquipmentRequest extends FormRequest {
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize() {
/*******************************************************/
return true; /************ THIS VALUE NEEDS TO BE TRUE */
/*******************************************************/
}
/* ... */
}
Pour moi, il s'agissait simplement d'appeler route()
sur une route nommée que je n'avais pas créée/créée de manière incorrecte. Cela a provoqué la page d'erreur interdite.
Le redémarrage du serveur Web a permis à Whoops! erreur à afficher:
Route [nom-ma-route] non défini.
La correction du nom de route ->name('my-route-name')
a corrigé l’erreur.
Ceci est sur Laravel 5.5 & using wampserver.
Ceci est résolu mon problème en ajoutant cette ligne:
DirectoryIndex index.php
J'ai eu un problème avec la version d'URL du site Web autre que www. La méthode PUT ne fonctionnait pas Mais en entrant sur le site avec www. - ça fonctionne bien!
J'ai eu le même problème et construit un fichier .htaccess
pour résoudre ce problème avec quelques améliorations supplémentaires. Vous pouvez l'utiliser tel quel, il suffit de le télécharger à partir de Github Gist et de changer le nom du fichier "public/index.php" en "public/app.php" et voir comment cela fonctionne! :)
J'ai eu cette erreur et je viens de coller le http://127.0.0.1:8000/ directement dans la barre d'URL .
je mettais dans localhost / http://127.0.0.1:8000/ pour obtenir l'erreur que vous avez mentionnée.