Donc, j'exécute xampp sur Windows. J'essaie actuellement de me familiariser avec le framework Laravel. Maintenant, quand c'est indiqué. Comment puis-je accéder à mon application/site Web Laravel directement dans la racine?
Exemple,
Des bonnes solutions pour cela? Dois-je ajouter un fichier .htacess sur le dossier racine de laravel? (pas le public).
Aucune suggestion?
Le moyen le plus simple est de créer un fichier .htaccess
à la racine Laravel avec le contenu suivant:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Il devrait être redirigé facilement.
Référence:https://coderwall.com/p/erbaig/laravel-s-htaccess-to-remove-public-from-url
Voici comment je l'ai fait.
Windows peut être un véritable PITA lorsque vous essayez de modifier le fichier Hosts à cause du contrôle de compte d'utilisateur. Puisque je travaille sur toutes sortes de petits projets de loisir, je dois éditer ce fichier tout le temps, alors c’est ce que je fais.
Au bas du fichier, ajoutez ceci:
127.0.0.1 laravel.dev
Cela indique à Windows de pointer le navigateur Web sur localhost chaque fois que vous entrez laravel.dev dans la barre d'adresse du navigateur.
Au bas du fichier, ajoutez ceci: (Je suppose que xampp est installé à la racine du lecteur D:)
<VirtualHost *:80>
ServerName laravel.dev
DocumentRoot "D:/xampp/htdocs/laravel/public"
<Directory "D:/xampp/htdocs/laravel/public">
</Directory>
</VirtualHost>
Ajoutez un fichier htaccess à votre dossier laravel/public (si ce n’est pas déjà fait). Je pense que le fichier htaccess par défaut fourni avec L4 ressemble à ceci:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
http://laravel.dev
http://laravel.dev/about
BEST Approch : Je ne recommanderai pas de supprimer public, mais sur un ordinateur local, créez un point d’hôte virtuel sur un répertoire public et sur un hébergement distant, passez public à public_html et dirigez votre domaine vers ce répertoire. Reason, tout votre code laravel sera sécurisé parce que son niveau descend dans votre répertoire public :)
METHODE 1: Je viens de renommer server.php en index.php et cela fonctionne
METHODE 2:
Voici ma structure de répertoire,
/laravel/
... app
... bootstrap
... public
... etc
Suivez ces étapes faciles
requireDIR. '/ ../bootstrap/autoload.php';
à
requireDIR. '/ bootstrap/autoload.php';
et
$ app = require_onceDIR. '/ ../bootstrap/start.php';
à
$ app = require_onceDIR. '/ bootstrap/start.php';
'public' =>DIR. '/ ../public',
à
'public' =>DIR. '/ ..',
et voilà, maintenant essayez http: // localhost/laravel /
Déplacez le contenu du dossier/public vers le bas.
Vous devrez mettre à jour les lignes d'inclusion dans index.php pour pointer vers l'emplacement correct. (si c'est un niveau, supprimez le '../').
Définissez votre racine de document pour Apache dans le dossier public et non dans le dossier laravel. C'est la technique la plus simple et recommandée pour les environnements de production.
J'utilise L5, cela fonctionne très bien pour moi:
- C'est ça !!!
Ajoutez le code suivant au fichier htaccess. Cela peut vous aider.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
J'ai également eu du mal à résoudre ce problème, mais j'ai trouvé une solution simple qui ne nécessite que la création d'un autre .htaccess à la racine de votre application.
Le .htaccess lui-même devrait contenir ceci:
RewriteEngine On
RewriteCond %{HTTP_Host} ^{yoursite}.{extension} [NC]
RewriteRule (.*) http://www.{yoursite}.{extension}/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]
Le système complet continue à fonctionner mais il redirige vers le dossier/public.
C'est comment j'ai résolu le problème pour moi-même.
J'espère que ça aide!
À votre santé.
Ajoutez le code suivant dans votre .htaccess (s'il n'existe pas, créez un .htaccess sur le répertoire racine de laravel)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Source: http://tutsnare.com/remove-public-from-url-laravel/
à la source, vous avez également recours à une autre méthode.
Mise à jour: le moyen préféré de le faire est de modifier la structure de répertoires, ce qui explique l’URL source.
juste en une étape simple, je l'ai fait dans laravel 5
<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 ^ ./index.php [L]
</IfModule>
puis renommez votre server.php
en index.php
que ça va marcher
ou si vous faites juste du développement local
lancer ce php artisan serve
comman
il démarrera le serveur local à localhost:8000
(le port peut varier)
Si vous ne souhaitez pas passer par le stress de la configuration du fichier .htaccess, vous pouvez utiliser le serveur intégré PHP de la manière suivante:
laravel\public
php -S localhost:8000
Une fois que vous pourrez accéder à votre site Web, allez à:
http:://localhost:8000
fonctionne sans ajouter public
Voir le manuel officiel pour en savoir plus: http://php.net/manual/en/features.commandline.webserver.php
J'ai trouvé que Geart Flow fonctionne avec laravel localy.
Ce que vous pouvez faire, c'est configurer xampp un peu. Dans le fichier httpd.conf de votre xamp, vous devez trouver le document DocumentRoot
et <Directory>
. Changez le répertoire racine dans votre dossier public laravel et redémarrez Apache. Depuis quand vous pouvez accéder à votre projet simplement en tapant localhost. Maintenant, si vous le souhaitez, vous pouvez modifier votre fichier hôte et réécrire le DNS local, par exemple: 127.0.0.1 example.laravel.com
et vous pouvez désormais accéder à votre projet avec une URL réelle. Cela peut sembler un peu compliqué, mais ce n'est pas.
Une alternative à cela serait php artisan serve
. Vous pouvez démarrer le serveur sur différents ports et lors de la réécriture du fichier hosts.
Vous pouvez ajouter des fonctionnalités pour améliorer encore plus votre flux de travail, par exemple vagrant
ou ngrok
. Vous pouvez partager votre projet pour une présentation en direct (la vitesse peut être indiquée ici).
Allez dans le dossier du projet en utilisant cmd et tapez "php artisan serve" . Maintenant, allez à: localhost: 8000
Vous pouvez utiliser des liens symboliques ou éditer le fichier httpd.conf
.
Vérifiez ma réponse à une autre question similaire. J'espère que ça aide.
Vous devez faire les choses suivantes:
commencez par copier tout le contenu du répertoire public de votre répertoire racine, c’est-à-dire apportez le contenu du dossier public 1 étape supérieure.
modifier le contenu de index.php
De =>
require __DIR__ . "/../bootstrap/autoload";
$app = require_once __DIR__ . "/../boostrap/start.php"
To =>
"require __DIR__.'/bootstrap/autoload.php';"
"$app = require_once __DIR__.'/bootstrap/start.php';
ainsi que le contenu de bootstrap/paths.php
De => 'public' => __DIR__.'/../../',
To => 'public' => __DIR__.'/..',
3.Alors, créez le fichier .htaccess dans votre répertoire racine et écrivez-le.
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
renommez le server.php
en index.php
et copiez le .htaccess
à partir du /public
… .. Si vous envoyez votre application en ligne, il suffit de changer DocumentRoot en chemin public.
Besoin de supprimer le segment public dans l'application larvel4
Laravel 4 vous oblige à placer le code de votre application d’un niveau supérieur à celui de la racine Web, ce qui pose des problèmes à certains développeurs qui sont bloqués sur un hébergement partagé et qui ne permettent pas une telle configuration. C’est vraiment très facile de s’y retrouver. J'ai lu que certains paquets spécifiques à L4 pourraient avoir des problèmes avec une configuration comme celle-ci, mais je n'ai encore rien rencontré de tel.
Donc, commencez par installer L4 quelque part que vous aimez. J'ai aimé l'article que Niall a écrit sur la mise à jour de l'application de base L4, alors vérifiez-le: Installation et mise à jour Laravel 4
Je trouve que c’est suffisant pour cet exemple pour simplement cloner le référentiel (en supposant que vous avez installé le compositeur globalement, sinon, allez à http://getcomposer.org/ ):
git clone -b develop git://github.com/laravel/laravel.git app_name
compositeur php installer
Notez que nous sommes en train de cloner la branche develop, car L4 est toujours en version bêta pour le moment.
Donc, pour supprimer la partie "publique" de votre URL, déplacez simplement tous les fichiers et dossiers du public vers la racine de votre application et vous obtiendrez une structure de dossiers comme celle-ci:
/app
/bootstrap
/packages (copied from /public)
/vendor
.htaccess (copied from /public)
artisan
composer.json
favicon.ico (copied from /public)
index.php (copied from /public)
robots.txt (copied from /public)
server.php
Maintenant, nous devons éditer nos chemins dans index.php:
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/start.php';
Et ensuite, définissez le répertoire public dans le fichier /bootstrap/paths.php:
'public' => __DIR__.'/..',
c'est ma suggession
Étapes simples à suivre:
server.php
(dans le répertoire racine) en index.php
.htaccess
du répertoire public vers le répertoire racinesi vous supprimez public de l’url, déplacez d’abord le fichier index.php et le fichier .htaccess du dossier public vers la racine du fichier laravel et modifiez-le dans le fichier index.php
require DIR. '/ ../bootstrap/autoload.php'; $ app = require_once DIR. '/ ../bootstrap/start.php';
à
require DIR. '/ bootstrap/autoload.php'; $ app = require_once DIR. '/ bootstrap/start.php';
et lancez le programme
Cela a déjà été demandé à plusieurs reprises. J'ai eu le même problème. Je l'ai résolu en utilisant vhosts et les fichiers .htaccess. Je voulais écrire sur la solution à la fois sur XAMPP sous Windows et sur l’installation de LAMP sur Ubuntu. Ma configuration sous Windows: Mon objectif était d’atteindre ma demande en entrant l’uri ci-dessous
http://localhost/subdir
c:\xampp\htdocs\subdir\ # this was laravel root directory
c:\xampp\Apache\conf\extra\httpd-vhosts.conf # this virtual hosts file
J'ai utilisé le fichier .htaccess original du site Web Laravel (et rappelez-vous que le fichier .htaccess doit se trouver dans le répertoire public), mais je viens d'ajouter une ligne qui est
RewriteBase /subdir (just below RewriteEngine On)
De plus, dans le fichier httpd-vhosts, vous devez ajouter votre alias de sous-répertoire comme suit:
Alias /subdir
"C:/xampp/htdocs/subdir/public"
<Directory "C:/xampp/htdocs/subdir/public">
Order allow,deny
Allow from all
Options All
AllowOverride All
Require all granted
</Directory>
J'espère que tout est clair avec mon explication. Cette réponse peut être appliquée facilement sur des systèmes basés sur Unix.