Bonjour,

je dois faire mon premier deployement d'un projet sous laravel sur un serveur mutialise..

mon soucis vient du fait que j'aimerais

  • un htaccess qui redirige de la racine vers /public/
  • la redirection de no-www vers www

Ce que je fais

j'ai cree un premier .htaccess a la racine avec le petit code classique qu'on trouve partout :)

RewriteEngine On
   RewriteRule ^(.*)$ public/$1 [L]

j'ai ajoute le petit code de condition pour la version non-www vers www

    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE]

Ce que je veux

je voudrais simplement que les 2 htaccess fonctionnent ensemble, main dans la main...

Ce que j'obtiens

soit le .htaccess a la racine fonctionne et redirige dans le dossier pubic

soit la redirection des non-www vers le www fonctionne

mais pas les deux en meme temps..

si quelqu'un a une solution, ca serait super :)

merci beaucoup :)
fabrice

4 réponses


Bonjour ifabe,
la règle de redirection vers 'public' tu l'as bien mise en dernier ?
comme elle est généraliste et qu'elle inclut Last, la suivante ne marchera jamais

Tu ne peux pas faire pointer ton site directement dans public au lieu de la racine ? (chez OVH c'est possible par exemple)

ifabe
Auteur

Huggy: j'ai enlevé le "L" sur la redirection "public" vu que c'est le premier htaccess que rencontre le navigateur.

Onourils: Sur l'hébergeur pris par le responsable, pas de config du style possible...

A ce moment, si j'enleve la redirection des non-www vers www, la redirection vers public fonctionne (déjà pas mal :) )

Maintenant, si je décommente la redirection des www

Si je me rend sur www.serveur.dev -> Résultat nickel..
Si je me rend sur serveur.dev -> la redirection a lieu mais

Laravel me redirige directement la ->
http://serveur.dev/http://www.serveur.dev/public

Sur laravel il y'a déja un fichier configuré, un htaccess qui est sur le dossier public qui est la raison pour la laquelle ça ne fonctionne pas votre url rewriting je ne sais pas comment t'as appris laravel mais tu devais savoir après le codage de votre site web il faut faire un déploiement tout le contenu qui est sur public doit être déplacer un cran dérrière dans la racine principale du site web après tu modifie index.php ces lignes de code par :

/../bootstrap/autoload.php par /bootstrap/autoload.php
/../bootstrap/app.php par /bootstrap/app.php