CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Redirection htaccess sur du mutualisé

Fire_Storm
Fire_Storm
Niveau 10
03 septembre 2012 à 21:08:17

Salut.

J'ai un soucis qui me prend bien la tête depuis ce matin.

Je bosse souvent sur OVH avec des hébergements mutualisé parce que je n'ai pour l'instant pas besoin de plus.

Bref je travaille depuis peu avec le modèle MVC, et le tout en PHP POO

Étant donné qu'il y a plusieurs partie (les applications, le dossier web etc) j'avais donc au départ redirigé toutes requête vers le site principal avec un truc du genre:

RewriteRule ^(.*)$ http://www.monsite.com/dossierprincipal/web/$1

Jusque là ça marchait bien, et puis on m'a demandé de rajouter un dossier pour nos sites en test ou en développement.

Et c'est là que commence les soucis;

Ce que j'aimerais avoir c'est que si on tape

www.monsite.com on tombe sur le site principal (qui pointe donc en réalité sur www.monsite.com/monsiteprincipal/web)

mais que j'ai par exemple la possibilité d'avoir un sous domaine projets.monsite.com (ou www.monsite.com/projets ça ira aussi) dans lequel je puisse intégrer donc les projets en cours.

Sauf que comme j'ai dit que tout était redirigé vers monsite.com/monsiteprincipal/web et bah ça foire.

J'ai bien finalement réussi à rediriger chacun vers son dossier respectif, mais dans ce cas ci j'ai l'url compléte (donc au lieu d'avoir monsupersite.com/mapage.html, j'ai mondomaineprincipal.com/lenomdudossierdusite/web/m
apage.html

Ca fonctionne mais c'est moche... xD

Le problème aurait pu être vite réglé si comme sur ma machine j'ai accès à la config apache et aurait pu créer des virtualhosts mais là c'est pas le cas, donc je dois me démerder avec du htaccess. Mais là je sèche complètement...

Je sais pas si j'ai été très clair, le problème est un peu tordu. xD C'est juste que j'aimerais sur le même hébergement pouvoir mettre plusieurs sites, et que l'adresse de chacun redirige vers le bon dossier (sachant que j'utilise du MVC je le rappelle), et que l'URL ne change aps (ou du moins sans avoir les dossiers intermédiaires, comme définirait le documentroot via un virtualhost quoi).

Bref jusqu'a présent le mutualisé c'était sympa, mais là c'est franchement chiant de galérer sur un truc qui logiquement aurait dû être régler en quelques minutes... xD

Merci d'avance.

vava740
vava740
Niveau 10
03 septembre 2012 à 21:23:47

Tu as essayé avec le flag [L] ?

RewriteEngine on

  1. Sous domaine "projets"

RewriteCond %{HTTP_HOST} ^projets\.monsite\.com$
RewriteCond %{REQUEST_URI} !^/projets/
RewriteRule (.*) /projets/$1 [L]

  1. Domaine principal

RewriteRule (.*) /monsiteprincipal/web/$1 [L]

Si on est sur le sous domaine projets, on rewrite vers le dossier projets, et sinon c'est le même rewrite qu'avant.

Par contre peut-être que ça pose un problème pour le modèle MVC ? Y'a tellement de façons de faire du MVC, sans forcément de rewrite que je ne saurais pas te dire. :(

vava740
vava740
Niveau 10
04 septembre 2012 à 09:38:16

EDIT: En fait le fait que tu fasses du MVC pose pas problème, mais tu voulais dire que tu veux des url du genre /controlleur/module/, avec un deuxième .htaccess dans dossierprincipal/web/ ?

Si c'est ça alors c'est juste une question de RewriteCond dans le .htaccess. :ok:

Déjà petite correction de mon post précédent, pour la partie domaine principal, il faut justement rajouter une condition pour éviter de rentrer dans une boucle infinie:

RewriteCond %{REQUEST_URI} !^/monsiteprincipal/web/
RewriteRule (.*) /monsiteprincipal/web/$1 [L]

Et sur ton .htaccess qui va servir pour le MVC, dans ton dossier web, tu peut mettre ça par exemple:

RewriteEngine on

  1. RewriteBase /monsiteprincipal/web/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)/(.*)/ /index.php?controlleur=$1&module=$2 [L]

Y'a deux conditions qui font en sorte de ne pas rewrite si le fichier existe (les css, js, etc... et également le dossier (le flag -d)). Donc tu auras bien le rewrite de la racine qui amènera à /monsiteprincipal/web/, peu importe si les fichiers existent ou pas, mais tu traite les choses plus finement dans le deuxième .htaccess. :p)

Avec ça si tu rentre www.tonsite.com/foo/bar/ tu récupéreras dans /monsiteprincipal/web/index.php les variables get controlleur et module (après libre à toi de customiser ça comme tu veux :p) ). Et si tu mets www.tonsite.com/truc.js et que tu as un fichier truc.js dans /monsiteprincipal/web/, c'est lui que tu verras directement. :oui:

vava740
vava740
Niveau 10
04 septembre 2012 à 09:39:29

Tu peux virer la ligne "#RewriteBase /monsiteprincipal/web/" au passage, j'avais mis ça pour tester si y'en avait besoin ou pas mais on est déjà relatif à la racine du dossier (c'est pour ça que je l'avais commentée d'ailleurs :noel: )

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment