Ik heb een oude url (www1.test.net
) en ik wil deze graag omleiden naar https://www1.test.net
Ik heb ons SSL-certificaat op mijn site geïmplementeerd en geïnstalleerd.
Dit is mijn oude bestand .htaccess
:
RewriteEngine On
RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]
Hoe kan ik mijn .htaccess
-bestand zo configureren dat de url automatisch wordt omgeleid naar https
?
Bedankt!
Antwoord 1, autoriteit 100%
2016 bijwerken
Omdat dit antwoord enige aandacht krijgt, wil ik een hint geven naar een meer aanbevolen manier om dit te doen met behulp van virtuele hosts: Apache: SSL omleiden
<VirtualHost *:80>
ServerName mysite.example.com
Redirect permanent / https://mysite.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>
Oud antwoord, hacky ding
aangezien uw ssl-poort niet is ingesteld op 80, zal dit werken:
RewriteEngine on
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
Merk op dat dit je eerste herschrijfregel zou moeten zijn.
bewerken: Deze code doet het volgende. De REWRITECOND (ITION) Controleert of het Serverport van het verzoek 80 is (wat de standaard HTTP-poort is, als u een andere poort hebt opgegeven, zou u de voorwaarde hierop moeten aanpassen). Zo ja, wij matchen de hele URL (.*)
en omleiden deze naar een HTTPS-URL. %{SERVER_NAME}
kan worden vervangen door een specifieke URL, maar op deze manier hoeft u de code niet te wijzigen voor andere projecten. %{REQUEST_URI}
is het deel van de URL na het TLD (top-level-domein), dus u wordt doorgestuurd naar waar u vandaan kwam, maar zoals HTTPS.
Antwoord 2, Autoriteit 164%
Ik gebruik het volgende om met succes alle pagina’s van mijn domein van HTTP naar HTTPS te omleiden:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
OPMERKING Dit zal worden omgeleid met behulp van de 301 'permanently moved'
omleiding, die helpt uw SEO-rankings over te dragen.
Om door te leiden met behulp van de 302 'temporarily moved'
wijzig [R=302,L]
Antwoord 3, Autoriteit 56%
Dit is het beste voor www
en voor https, voor proxy en geen proxy-gebruikers.
RewriteEngine On
### WWW & HTTPS
# ensure www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# ensure https
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
### WWW & HTTPS
Antwoord 4, Autoriteit 10%
Ik dwing de HTTPS met de volgende code:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Antwoord 5, Autoriteit 5%
In gevallen waarin de HTTPS / SSL-verbinding wordt beëindigd bij de load balancer en alle verkeer naar instances op poort 80 wordt verzonden, werkt de volgende regel om niet-beveiligd verkeer door te sturen.
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Zorg ervoor dat de mod_rewrite
module is geladen.
Antwoord 6, Autoriteit 3%
Zoeken naar de beste manier om door te sturen, heb ik dit gevonden (afkomstig van HTML5Boilerplaat):
# ----------------------------------------------------------------------
# | HTTP Strict Transport Security (HSTS) |
# ----------------------------------------------------------------------
# Force client-side SSL redirection.
#
# If a user types `example.com` in their browser, even if the server
# redirects them to the secure version of the website, that still leaves
# a window of opportunity (the initial HTTP connection) for an attacker
# to downgrade or redirect the request.
#
# The following header ensures that browser will ONLY connect to your
# server via HTTPS, regardless of what the users type in the browser's
# address bar.
#
# (!) Remove the `includeSubDomains` optional directive if the website's
# subdomains are not using HTTPS.
#
# http://www.html5rocks.com/en/tutorials/security/transport-layer-security/
# https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14#section-6.1
# http://blogs.msdn.com/b/ieinternals/archive/2014/08/18/hsts-strict-transport-security-attacks-mitigations-deployment-https.aspx
Header set Strict-Transport-Security "max-age=16070400; includeSubDomains"
Misschien helpt het iemand in 2017! 🙂
Antwoord 7, Autoriteit 3%
Voeg deze code aan het einde van uw .htaccess-bestand
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Antwoord 8, autoriteit 3%
Voer deze code in uw .htaccess-bestand in. En het zou moeten werken
RewriteCond %{HTTP_HOST} yourDomainName\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yourDomainName.com/$1 [R,L]
Antwoord 9, autoriteit 2%
Dit zorgt ervoor dat omleidingen werken voor alle combinaties van intransparante proxy’s.
Dit omvat de case client <http> proxy <https> webserver.
# behind proxy
RewriteCond %{HTTP:X-FORWARDED-PROTO} ^http$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
# plain
RewriteCond %{HTTP:X-FORWARDED-PROTO} ^$
RewriteCond %{REQUEST_SCHEME} ^http$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
Antwoord 10, autoriteit 2%
Ik had ook een probleem met de omleiding. Ik heb alles geprobeerd dat op Stackoverflow werd voorgesteld. Het enige geval dat ik zelf heb gevonden is:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Antwoord 11, autoriteit 2%
Het volgende toevoegen aan de bovenkant van de .htaccess
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Antwoord 12
Gebruik de volgende code of lees meer in detail over dit onderwerp.
Hoe kan ik HTTP omleiden naar HTTPS met .htaccess?
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Antwoord 13
Dit is wat uiteindelijk voor mij werkte
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Antwoord 14
HTTPS forceren met het .htaccess
-bestand
==> Leid al het webverkeer om:-
Om al het webverkeer te dwingen HTTPS te gebruiken, voegt u de volgende regels code in het bestand .htaccess
in de hoofdmap van uw website in.
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
==> Alleen gespecificeerd domein omleiden:-
Om een specifiek domein te dwingen HTTPS te gebruiken, gebruikt u de volgende regels code in het bestand .htaccess
in de hoofdmap van uw website:
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Als dit niet werkt, probeer dan de eerste twee regels te verwijderen.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Zorg ervoor dat u example.com vervangt door de domeinnaam die u probeert
forceren naar https. Bovendien moet u www.example.com vervangen door
uw werkelijke domeinnaam.
==> Opgegeven map omleiden :-
Als je SSL op een specifieke map wilt forceren, voeg je de onderstaande code in een .htaccess
-bestand in dat in die specifieke map wordt geplaatst:
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ https://www.example.com/folder/$1 [R=301,L]
Zorg ervoor dat u de mapverwijzing wijzigt in de werkelijke mapnaam.
Zorg er dan voor dat u www.example.com/folder vervangt door uw werkelijke domein
naam en map waarop u de SSL wilt forceren.
Antwoord 15
Vervang uw domein door domainname.com
, het werkt met mij .
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domainname\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domainname.com/$1 [R,L]