2016-05-29 49 views

risposta

24

Si sta utilizzando una configurazione del server Web errata. Puntare il server Web su una directory public e riavviarlo.

Per Apache è possibile utilizzare queste direttive:

DocumentRoot "/path_to_laravel_project/public" 
<Directory "/path_to_laravel_project/public"> 

Per nginx, è necessario modificare questa riga:

root /path_to_laravel_project/public; 

Dopo aver fatto questo, tutti i file laravel non saranno accessibili dal browser più.

+0

Ma per quanto riguarda l'hosting condiviso? Come lo facciamo lì? @ Alexey-mezenin –

0

Impostare la radice del documento come directory public, in modo che altri file non siano accessibili direttamente. Cercalo nel tuo apache/nginx/??? file di configurazione.

+0

Sto usando Apache. Ok, ma non voglio che questa cartella pubblica appaia nel mio URL. Se imposto la mia radice del documento in pubblico, sono obbligato a utilizzare/public al mio URL .. –

+0

@YasenIvanov Non capisco affatto quale sia il tuo reclamo. Sicuramente al momento devi usare '/ public /' all'inizio dei tuoi URL? Se si imposta la radice del documento nella directory pubblica, allora ** non sarà **. Perché vuoi avere '/ public /' all'inizio di tutti i tuoi URL? – Chris

+0

Non voglio avere/pubblico/con i miei URL - questo è quello che ho detto. Se imposto la mia root dei documenti in una directory pubblica non mi consente di ottenere accesso come questo - http://domain.com - dice "Forbidden". Se lo digito http://domain.com/public ho accesso. La domanda è come rimuovere questo/public/dai miei URL? –

1

Che non è corretto. composer.json si trova all'esterno della directory public e pertanto non dovrebbe essere accessibile. Ciò significa che la configurazione di VirtualHost non è corretta.

Assicurati che il percorso della directory termini con /public.

+0

Penso che sia perché ho rinominato server.php in index.php e ho aggiunto il file .htaccess alla directory root. Quindi è sbagliato rimuovere public.index.php dall'URL in quel modo? –

+1

Non si dovrebbero apportare modifiche. 'index.php' e' .htaccess' dovrebbero essere solo in una directory 'public' e non dovrebbero essere modificati. –

0

Dipende dal server Web in esecuzione. Con Apache sarebbero file .htaccess mentre con Nginx verrebbe gestito nel file di configurazione del server.

0

È possibile negare i file anche in .htaccess.

<Files "composer.json"> 
Order Allow,Deny 
Deny from all 
</Files> 
0

Con Apache, è possibile creare il file .htaccess nella directory principale del progetto Laravel per riscrivere tutte le richieste su public/directory.

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 
1

punto il server web alla directory pubblica nella cartella principale del progetto

project root folder/public 

ma se non si ha la cartella pubblica e si sta già indicando la cartella principale, si può negare accedere scrivendo il seguente codice nel file .htaccess.

<Files ".env"> 
Order Allow,Deny 
Deny from all 
Allow from 127.0.0.1 
</Files> 

nel codice di cui sopra, in primo luogo stiamo negando da tutto e consentendo solo dal proprio server (localhost al server) per ottenere eseguito, e quindi siamo in grado di proteggerlo da utenti esterni.

0

semplicemente creare vuoto

index.php

file nella directory di configurazione, e scrivere il messaggio nel file come ti piace per informare acccessor utente

es.accesso vietato dal server