Portekoi Posté 28 Novembre 2017 Posté 28 Novembre 2017 Bonjour, J'ai réussi à mettre en place un certificat de type wilcard grâce à notre admin préféré. Mon but est d'avoir des sous domaines virtuels pour mes différents utilisateurs, le tout en HTTPS. J'aimerais donc aussi gérer les cas où l'url ne contiendrait pas HTTPS Par exemple : http://portekoi.easyabo.fr devrait rediriger vers https://portekoi.easyabo.fr Mais, avec le htacces actuel (voir ci-dessous), je suis redirigé vers : https://portekoi.easyabo.fr/portekoi/https://portekoi.easyabo.fr/ Voici mon htaccess : RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} #Sous domaine dynamique RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.easyabo\.fr\.?(:80)?$ [NC] RewriteCond %{DOCUMENT_ROOT}/%1 -d RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L] RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] Je me doute que cela vient du premier bloc mais je ne trouve pas comment empêcher cet effet. Merci d'avance, Damien
Message populaire. Dan Posté 28 Novembre 2017 Message populaire. Posté 28 Novembre 2017 Avec un [R=301,L] à la fin de ta première règle, ça va tout de suite mieux Comme j'ai accès à ton serveur, je l'ai ajouté ! 1
Portekoi Posté 4 Décembre 2017 Auteur Posté 4 Décembre 2017 Je continue dans mes pérégrinations de sous domaines : Uniquement pour les sous domaines `dynamiques`, comme faire pour rediriger toutes les pages vers : index.php Exemple : https://portekoi.monsite.com/ma-page/ => cette URL appellerait finalement https://portekoi.monsite.com/index.php Mais il faudrait que cela ne se produise QUE pour les sous-domaines ciblés par : RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.easyabo\.fr\.?(:80)?$ [NC] RewriteCond %{DOCUMENT_ROOT}/%1 -d RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L] RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] J'ai essayé de compléter la règle ci-dessus avec : RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] Mais je me prends des erreurs 500
Portekoi Posté 4 Décembre 2017 Auteur Posté 4 Décembre 2017 OK je pense avoir un truc mais cela me pose un autre souci. Je vais créer un autre post. Ma solution : RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{HTTP_HOST} !^www\.easyabo\.fr$ [NC] RewriteCond %{HTTP_HOST} !^api\.easyabo\.fr$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteCond %{HTTP_HOST} !^www\.easyabo\.fr$ [NC] RewriteCond %{HTTP_HOST} !^api\.easyabo\.fr$ [NC] RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.easyabo\.fr\.?(:80)?$ [NC] RewriteCond %{DOCUMENT_ROOT}/%1 -d RewriteRule ^(.*) %1/$1 [E=SUBDOMAIN:%1,L] RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L]
Portekoi Posté 4 Décembre 2017 Auteur Posté 4 Décembre 2017 Flûte, marche pas : cela pointe sur le fichier index.php à la racine du serveur et non dans le dossier de mon sous domaine...
Portekoi Posté 4 Décembre 2017 Auteur Posté 4 Décembre 2017 Je m'auto réponds : le plus simple est de mettre un autre fichier htaccess dans le dossier de mon sous domaine dynamique avec dedans : <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Portekoi Posté 11 Décembre 2017 Auteur Posté 11 Décembre 2017 Comment je peux pointer sur le dossier /public_html/users/portekoi (au lieu de /public_html/portekoi) là où `portekoi` est le sous domaine demandé? Je voudrais ne pas avoir 400 dossiers d'utilisateurs directement à la racine de mon site... J'ai testé ceci mais sans succès : RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.easyabo\.fr\.?(:80)?$ [NC] RewriteCond %{DOCUMENT_ROOT}/%1 -d RewriteRule ^(.*) /users/%1/$1 [E=SUBDOMAIN:%1,L] RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] #A modifier ErrorDocument 404 /404.html
Dan Posté 11 Décembre 2017 Posté 11 Décembre 2017 Il faut éditer les templates de Directadmin pour cela, ou faire une modification du httpd.conf pour que ce soit automatique. Tu veux que TOUS les sous-domaines sauf www pointent vers /public_html/users/sous_domaine ?
Portekoi Posté 11 Décembre 2017 Auteur Posté 11 Décembre 2017 Tout à fait : 'www' mais aussi peut être d'autres "vrais" sous domaines comme 'api' par exemple mais cela m'ennuie de passer par toi si je dois en ajouter un demain. Je vais y réfléchir encore.
Portekoi Posté 13 Décembre 2017 Auteur Posté 13 Décembre 2017 Re, Après réflexion, pour EasyAbo.Fr uniquement, il serait préférable d'effectivement placer les sous domaines "dynamiques" dans le dossier `users`sauf pour : www et api (mais peut être que j'aurais besoin demain d'autres "vrais" sous domaines) Tu peux me dire comment je peux éditer le fichier `httpd.conf` en ce sens ? Merci
Dan Posté 14 Décembre 2017 Posté 14 Décembre 2017 J'ai bien une idée quant à la manière de procéder, mais n'ai pas encore eu l'occasion de tester les templates avec des boucles et tests conditionnels. Et tester ça sur un serveur en production, je ne suis pas chaud-chaud, d'autant moins que tu as ceci dans ta config httpd pour easyabo.fr ServerAlias *.|DOMAIN|
Portekoi Posté 14 Décembre 2017 Auteur Posté 14 Décembre 2017 Ok pas de soucis. On touche à rien alors.
Dan Posté 14 Décembre 2017 Posté 14 Décembre 2017 J'ai testé vers 7H, mais c'est vraiment le ServerAlias qui coince ! J'ai tout remis comme avant !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant