2013-08-16 8 views
16

La mia installazione laravel stava lavorando ieri bene, ma oggi ho il seguente errore:laravel - Forbidden Non hai il permesso di accesso/su questo server

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. 

Qualcuno sa dove sto andando male?

+0

Non sembra un problema Laravel. Potrebbe essere necessario dare un'occhiata al proprio server web, alle autorizzazioni di file e file .htaccess: http://www.cyberciti.biz/faq/apache-403-forbidden-error-and-solution/. –

risposta

0

Si potrebbe essere di fronte al problema dei permessi dei file. Verifica il tuo file htacces, è cambiato da ieri? Inoltre, se stavi eseguendo qualsiasi operazione di "aggiornamento del compositore" o "ottimizzazione artistica", prova a eseguire il chowning della cartella del progetto laravel come nome utente.

chown -R yourusername yourlaravelappfolder 

EDIT: il problema è probabilmente a causa di autorizzazioni di file locali in materia di Vagrant. Prova a

set the permissions to the Vagrantfile containing folder to 777 
+0

Non ho cambiato nulla da ieri. Grazie per il tuo suggerimento ma non ha funzionato. – panthro

+0

OK, è possibile che nel frattempo il tuo ambiente server sia cambiato? Qualcosa deve essere successo :) L'errore che stai affrontando deve essere per qualche motivo, giusto? – Gadoma

+0

Non è cambiato nulla. Stava lavorando ieri sera. Spegni il computer. Non funziona stamattina. – panthro

11

Hai provato a modificare il file .htaccess suggerito da laravel se quello predefinito non funziona? Ho avuto questo problema simile e cambiato in

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

e soleved :)

+1

Grazie. Ha funzionato anche per me. – KCP

+0

in cui il file '.htaccess' dobbiamo inserire questo codice? il file 'root' o quello trovato nella directory' public'? –

+1

Modifica file '.htaccess' root –

3

Con me il problema sembrava essere circa il fatto che non vi era alcun file index.php nella cartella public_html. Tuttavia, quando ho digitato questo indirizzo: http://azxcvfj.org/public, ha funzionato (questo indirizzo è solo un esempio. Questo mi ha fatto riflettere e alla fine l'ho risolto facendo quanto segue.

Ho fatto un file .htaccess nella cartella principale dell'applicazione (la cartella public_html) con questo contenuto:

<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> 

E questo ha funzionato. Con questo file si sta sostanzialmente dicendo al server (Apache) che ogni volta che qualcuno sta cercando di accedere alla cartella html pubbliche (http://azxcvfj.org) che qualcuno che viene reindirizzato viene reindirizzato a http://azxcvfj.org/public/index.php

9

Per chi utilizza Mamp o 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. 
+1

grazie. questa è un'ottima risposta –

20

Creare e inserire questo file .htaccess nella cartella di installazione di laravel.

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI} !^public 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 
+0

questo ha funzionato per me! grazie –

+0

Grazie per il tuo aiuto –

0

Ho avuto lo stesso problema e edificati un file .htaccess per risolvere questo problema con alcuni ulteriori miglioramenti. Puoi usarlo così com'è, basta scaricarlo da Github Gist e cambiare il nome del file "public/index.php" in "public/app.php" e vedere come funziona! :)

8

Controlla la configurazione dell'host virtuale. Per Ubuntu si potrebbe trovare in /etc/apache2/sites-available/yourlaravel.conf Dovrebbe essere così:

<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 linea chiave è Require all granted all'interno <Directory>.

Spero che aiuti!

13

Ho incontrato lo stesso problema, quindi faccio lo stesso con la soluzione di @lubat e il mio progetto funziona bene.: D La mia configurazione 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> 
2

E 'stato risolto per me con la laravel predefinita pubblico/.htaccess file di l'aggiunta di una linea supplementare:

Il file /public/.htaccess rimane come segue:

<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> 
0

1. Aggiorna il tuo host virtuale.

<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> 

2. Modificare il file di autorizzazione e di proprietà.

$ sudo chgrp -R www-data /var/www/html/example-project 
$ sudo chmod -R 775 /var/www/html/example-project 

This worked for me. Please give it a shot. Thanks :)

0

Per me questo è stato semplicemente chiamando route() su un percorso di nome che non avevo creato/creati in modo non corretto. Ciò ha causato la pagina di errore Proibito.

Il riavvio del server Web consentito è corretto. Whoops! errore da visualizzare:

Route [my-route-name] not defined.

fissaggio il nome della rotta ->name('my-route-name') risolto l'errore.

Questo è su Laravel 5.5 & utilizzando wampserver.

Problemi correlati