.htaccess verwijst http om naar https

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 wwwen 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_rewritemodule 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 .htaccessin 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 .htaccessin 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]

Other episodes