Jump to content

HTTP vers HTTPS (avec sous domaine dynamique)


Recommended Posts

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

 

 

Link to comment
Share on other sites

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 :(

Link to comment
Share on other sites

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]

 

Link to comment
Share on other sites

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>

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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 ?

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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|

 

:P

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...