Puncte:1

Apache nu redirecționează non-WWW către WWW HTTPS

drapel us

Am un site, www.example.com, pe care nu le pot vizita fără a intra pe www. Folosind o gazdă virtuală Apache, încerc să fac astfel încât, dacă este introdus non-www, acesta să fie redirecționat automat către www.

Dacă încerc să merg http://www.example.com, se redirecționează către https://www.example.com si functioneaza

Dacă încerc să merg https://www.example.com, funcționează și.

Cu toate acestea, problema este:

Daca intru http://example.com, se redirecționează către https://example.com si spune:

Acest site nu poate fi accesat Verificați dacă există o greșeală de scriere în example.com.
Dacă ortografia este corectă, încercați să rulați Windows Network Diagnostics.
DNS_PROBE_FINISHED_NXDOMAIN

Primesc același mesaj dacă încerc să merg https://example.com

Problema este că site-ul meu funcționează doar cu „www”. Pe non-www, cum pot forța www.? Am încercat fără rezultat următoarele:

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public/

    # Force non-www to www in HTTPS.
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

    ErrorLog /var/log/httpd/example.com.error.log
    CustomLog /var/log/httpd/example.com.access.log combined
</VirtualHost>
Puncte:2
drapel vn

Nu cred că aceasta este o problemă cu Apache. Este mai probabil ca DNS-ul dvs. autorizat pur și simplu să nu aibă o intrare pentru versiunea non-WWW a site-ului dvs. web. De exemplu, nslookup www.example.com va returna adresa IP a serverului dvs. Dacă faci nslookup example.com ar trebui să returneze și adresa IP a serverului dvs.; dacă nu, remediați-o mai întâi.

drapel us
Asta a fost! Nu a avut nimic de-a face cu Apache Virtual Host, ci cu DNS-ul. După ce am adăugat o înregistrare A care indică spre example.com, totul a funcționat. Redirecționarea din gazda mea virtuală a putut să redirecționeze non-WWW către WWW și SSL. Răspuns grozav. Mulțumesc mult pentru ajutor!
Laenka-Oss avatar
drapel lk
@tsc_chazz, când te referi la IP, te referi la `localhost IP(127.0.0.1)` sau la `IP-ul meu public al routerului meu`? Pentru că atunci când `nslookup www.example.com ==> 192.64.119.109, care este IP-ul lui namecheap` și `nslookup example.com ==> 127.0.0.1` nici măcar IP-ul meu public. Multumesc va rog
tsc_chazz avatar
drapel vn
Există trei posibilități aici, în funcție de serverul de nume despre care vorbiți. Pentru ca site-ul dvs. să fie vizibil pentru întreaga lume, adresa dvs. publică - adresa externă a routerului dvs. - trebuie să fie setată în DNS-ul dvs. public autorizat - ați spus namecheap.com? Pentru ca site-ul dvs. să fie vizibil pentru rețeaua dvs. internă, IP-ul său intern - probabil 192.168.0.something - ar trebui să fie setat în lista de nume locale a routerului. Și mașina în sine poate avea numele site-ului în fișierul său `hostnames` sau `hosts` care returnează `127.0.0.1`.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.