J'ai une installation de Laravel sur Wampserver. Le répertoire est le suivant:
C:\wamp\www\laravel
Maintenant, les URL sont comme ça:
http://localhost/laravel/public/index.php/home/index
J'ai donc utilisé le code htaccess suivant
Options +FollowSymLinks
Options -indexes
DirectoryIndex index.PHP
RewriteEngine on
RewriteCond $1 !^(index\.PHP|images|robots.txt)
RewriteCond %{REQUEST_ FILENAME} !-f
RewriteCond %{REQUEST_ FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L, QSA]
Pour réduire l'URL à
http://localhost/laravel/public/home/index
Mais le framework laravel insiste sur le fait que tous les fichiers de l'application résident dans le dossier public.
Je voudrais donc savoir ce que je dois ajouter (ou soustraire) au fichier htaccess afin que l'URL puisse ressembler à
http://localhost/laravel/home/index
Merci
Lorsque je teste localement, je fais l’une des deux choses suivantes.
Créez un nouveau fichier .htaccess sous le répertoire public avec les éléments suivants.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Créez un nouvel hôte virtuel. Avec WAMP, vous pouvez accéder à C:\wamp\bin\Apache\YOUR Apache VERSION\conf\extra
et trouver votre fichier httpd-vhosts.conf
. Vous y trouverez des exemples d’hôtes virtuels. Voici l'un des miens:
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/laravel/public"
ServerName laravel.dev
ServerAlias www.laravel.dev
</VirtualHost>
Assurez-vous que votre fichier de configuration vhosts est inclus. Ouvrez votre fichier httpd.conf
et recherchez le fichier vhosts
, décommentez la ligne d'inclusion si elle est commentée. Ensuite, j'ouvre le CLI et saisis notepad "C:\windows\system32\drivers\etc\hosts"
qui ouvre votre fichier hosts. Sous l'élément qui mentionne localhost
, placez votre nouvel hôte. Voici un exemple.
127.0.0.1 laravel.dev
Assurez-vous de redémarrer Apache et le bingo. Vous devriez pouvoir naviguer jusqu'à http://laravel.dev
et vous n'aurez aucun répertoire public ennuyeux. Voici comment je l'obtiens, car je préfère le plus bel hôte virtuel à la place d'une longue URL localhost
.
J'espère que cela t'aides.
J'ai finalement trouvé un moyen de sortir. Tout d'abord, je devais ouvrir et éditer mon Apache httpd.conf en le sélectionnant dans le menu du bac Wamp Aestran. Je devais décommenter la ligne
#Include conf/extra/httpd-vhosts.conf
Après cela, j’ai ouvert le fichier qui se trouve dans le répertoire
<wampdirectory>/bin/Apache/apache.x.y.z/conf/extra/httpd-vhosts.conf
puis j'ai ajouté les lignes suivantes.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "C:/wamp/www"
ServerName localhost
Options Indexes FollowSymLinks
<Directory "C:/wamp/www">
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
#If you want to allow access from your internal network
# For specific ip addresses add one line per ip address
#Allow from 192.168.0.100
# For every ip in the subnet, just use the first 3 numbers of the subnet
#Allow from 192.168.0
</Directory>
</VirtualHost>
## must be first so the the wamp menu page loads when you use just localhost as the domain name
<VirtualHost *:80>
DocumentRoot "C:/wamp/sites/laravel/public"
ServerName laravel.dev
Options Indexes FollowSymLinks
<Directory "C:/wamp/sites/laravel/public">
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
#If you want to allow access from your internal network
# For specific ip addresses add one line per ip address
#Allow from 192.168.0.100
# For every ip in the subnet, just use the first 3 numbers of the subnet
#Allow from 192.168.0
</Directory>
</VirtualHost>
L'étape suivante consistait à modifier mon fichier hosts à l'emplacement C:\windows\system32\drivers\etc.
et ajouté
127.0.0.1 laravel.dev
Puis redémarré Wamp et cela a fonctionné. Merci à vous les gars de m'avoir dirigé dans la bonne direction. J'apprécie beaucoup
La façon la plus simple de travailler sur mon environnement de développement local était de procéder comme suit:
(En supposant que WAMP soit installé dans C:\WAMP)
Créez le dossier suivant:
c:\wamp\www\laravel
Téléchargez laravel et mettez le contenu dans le répertoire ci-dessus. Vous saurez que vous avez bien fait si vous pouvez naviguer vers hxxp: // localhost/laravel/public et obtenir l'écran d'accueil. Cependant, cela ne suffit pas. Nous voulons obtenir cet écran en allant à http://localhost/laravel
Alors nous faisons ce qui suit:
Créez un fichier texte contenant les éléments suivants:
Alias /laravel "c:/wamp/www/laravel/public"
<Directory "c:/wamp/www/laravel/public">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Allow from all
</Directory>
Enregistrez ce fichier sous le nom laravel.conf
dans le répertoire c:\wamp\alias.
Enfin, redémarrez votre serveur Wampserver.
Vous devriez maintenant pouvoir naviguer sur http://localhost/laravel
Notez que ce qui précède est strictement destiné à un environnement de développement local.
Vous allez vous retrouver avec votre code et votre dossier public résidant au même endroit, ce que la plupart des gens ne recommandent pas. Je vous suggère de tirer parti de l'utilisation d'un serveur Web local.
Pourquoi ne pas faire pointer mysite.dev
vers le répertoire laravel/public
pour pouvoir simplement utiliser http://mysite.dev
à chaque fois, vous avez également une URL plus propre et plus courte?
En tant que nouveau venu chez WAMP et Laravel, j’ai eu du mal à réussir, mais j’ai réussi à faire en sorte que le serveur virtualhost fonctionne sur ma boîte WIN7PRO 64 bits. Dans WAMPSERVER/Apache/hppd.conf à la fin du fichier, j'ai ajouté:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot C:/webapp/public
ServerName webapp
<Directory C:/webapp/public >
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Allow from All
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot C:/wamp/www
ServerName localhost
</VirtualHost>
et j'ai ajouté:
127.0.0.1 webapp
dans le fichier hosts. (Je n'ai jamais réussi à éditer les fichiers vhosts, comme le suggéraient de nombreux messages sur le Web.)
Ces modifications me permettent d’accéder à mon application de test Laravel dans mon navigateur via
http://webapp
(and also, via just http://127.0.0.1)
et, pour accéder à tous mes autres sites, via:
http://localhost/devsite/whatever..