Goedemorgen,

Ik heb een server gekoppeld aan een domeinnaam, daarbij heb ik een HTTPS-certificaat. Alleen het probleem is ik heb alleen een certificaat voor de website met www. ervoor.

Hoe kan ik zorgen dat het wordt geredirect naar HTTPS en www. ongeacht wat er ingetypt wordt in de URL-balk.

Op dit moment heb ik:

RewriteEngine On
RewriteCond %{SERVER_NAME} =www.domein.nl [or]
RewriteCond %{SERVER_NAME} =domein.nl
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

In mijn Apache 2 configuratie staan van poort 80.
Maar dit werkt natuurlijk niet wanneer je naar https://domein.nl gaat, er staat geen www. voor.

Blijkbaar werkt het nu zoals ik wil maar ik zou graag Apache 2 configuratie gebruiken óf het aanpassen van de redirects in YourHosting (Default => https://www.domein.nl).
Ik vind dit slordig en ik zou graag één van de twee gebruiken.


Alvast bedankt voor het meedenken!
Zoiets:


RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Dan is het probleem dat hij van http://domein.nl naar https://domein.nl gaat. Dit gaat niet werken als ik een certificaat heb voor www.domein.nl
Ikzelf gebruik dit:


# Alle non-www request doorsturen naar www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Alles rewriten naar https met de huidige www-hostname.
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ik heb nog geen certificaatboer gezien die de beide varianten niet opneemt in een certificaat, dus dat punt gaat niet echt op. Wat gebeurt er als je van de laatste regel van Ivo jouw eigen regel maakt?
In mijn geval zal diegene toch doorgestuurd moeten worden. Het is wel natuurlijk zo dat http en https op dezelfde web-root uit moeten komen.
Ik heb 2 VirtualHosts in Apache 2, voor poort 80 en 443. Het is dus de bedoeling dat ik jouw code in beide VirtualHosts neer zet?
Ikzelf gebruik dit in de .htaccess, waar alles van beide protocollen dus samenkomt.
Mijn certificaat is gegenereerd met Lets Encrypt, op internet las dat als je www.domein.nl kiest dat je het dan ook alleen met www.domein.nl kan gebruiken. Verder heb ik nog steeds dat de HTTPS-versie niet goed werkt met zonder www.



Edit:
Dit was in Google Chrome met de volgende flag:

--force-fieldtrials=SSLCommonNameMismatchHandling/Disabled/


Hierdoor kan ik beter zien of mijn server configuratie wel goed staat.
Zonder deze vlag zal Google Chrome zelf gaan redirecten.

Hoe doet PHPHulp het eigenlijk? Deze heeft ook een certificaat van Lets Encrypt.
Ik vermoed dat als je de certificaten instelt via een hostingsysteem zoals DirectAdmin, Plesk of Cpanel, dat de certificaten goed geregeld zijn. Ik ga het in ieder geval eens navragen.

Ik heb even gekeken naar mijn testdomeinnaam waarop ik Let's Encrypt heb draaien (via DirectAdmin), en die gebruikt voor de www-domeinnaam gewoon het certificaat van de non-www domeinnaam.

Reageren