Toutes les façons possibles d'écrire un nom de domaine doivent être réécrites en https et non-www. Ces règles s'appliquent également à tous les sous-domaines (https et non-www).Améliorer la réécriture htaccess pour SSL, non WWW en utilisant des sous-répertoires
Le site principal doit être réécrit dans un dossier appelé "principal". Pour le moment j'ai un sous-domaine qui devrait être réécrit dans un dossier appelé "sub". J'ai donc commencé à travailler avec .htaccess mais ce code est un peu brouillon et je suis à peu près sûr qu'il y a une façon plus agréable/plus propre de réaliser ce que je veux.
Quelqu'un pourrait-il m'aider à améliorer le fichier .htaccess suivant?
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule^%1%3%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/main/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /sub/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ /sub/$1
# Force https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
L'URL du domaine principal devrait être comme: https://example.com et sous-domaine devrait être comme https://sub.example.com
Merci pour votre réponse! Votre solution fonctionne parfaitement pour le domaine principal, mais échoue pour le sous-domaine. Quand j'entre https: // www.sub.example.com le www ne sera pas enlevé et quand j'entre 'www.sub.example.com' le www ne sera pas enlevé et aussi celui-ci n'est pas redirigé à https. – Piet
@piet j'ai mis à jour la règle. – starkeen
Semble fonctionner maintenant, merci beaucoup! – Piet