Fórum Root.cz
Hlavní témata => Server => Téma založeno: darebacik 02. 06. 2018, 16:33:51
-
Trapim sa s tym uz asi 2 hodiny a nejak mi to nefunguje.
Situacia je nasledovna:
Na free dns servery som si zaregistroval min. 2 domeny
web1.ddns.com
web2.ddns.com
Na vlastnom VPS som si v debiane nainstaloval LAMP a vytvoril virtualhosty.
Weby fungovali na porte 80 ak som zadal do brovsera web1.ddns.com alebo web2.ddns.com vsetko funguje.
Na letsencrypt som si vygeneroval certifikaty a weby uz funguju na https 443.
Co by som chcel a neviem presne ako, resp. skusal som a nefungovalo to
Chcel by som to nastavit tak, ze ked zadam do url jednu z moznosti
web1.ddns.com
www.web1.ddns.com
https://web1.ddns.com
https://www.web1.ddns.com
aby som sa stale dostal na web a aby to vzdy v url prepisalo na
https://www.web1.ddns.com
Ako viem z okolia, tak vacsinou nikto do url nepise https a dokonca vela ludi nepise ani www, ale zadaju priamo web1.ddns.com.
Ako je vidiet z toho
web1.ddns.com
web2.ddns.com
toto su uz domeny druheho radu, ked ja tam chcem pychnut este www, tak to uz bude treti rad (neviem preco bolo vymyslene www :) )
Nejake riesenia co som nasiel su:
3
RewriteEngine On
RewriteCond %{HTTP_HOST} ^web1.ddns.com [NC]
RewriteRule ^(.*)$ http://www.web1.ddns.com/$1 [L,R=301]
Zaclenil som to do .htaccess, ale obavam sa, ze to nejako nefunguje
Samozrejme povolit v apache htaccess a rewrite a restart apache
Pridavam tu este konfigurak virtualhostu
<VirtualHost *:80>
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
</VirtualHost>
<VirtualHost *:443>
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/web1.ddns.com/cert.pem
# /etc/apache2/ssl/cert1.pem
SSLCertificateKeyFile /etc/letsencrypt/live/web1.ddns.com/privkey.pem
# /etc/apache2/ssl/privkey1.pem
DocumentRoot /var/www/www.web1.ddns.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
</VirtualHost>
Vedel by mi niekto poradit ako to vyriesit vdaka
-
Umožňuje ten free dns poskytovatel zaregistrovat i variantu s www, např. www.web1.ddns.com? Pravidla v .htaccessu můžeš mít jaká chceš, ale pokud nebude host www.web1.ddns.com přeložitelný...
-
Všechny ty domény, tj. web1.ddns.com i www.web1.ddns.com (případně varianty s dvojkou) musíte mít v DNS nasměrované na ten váš server.
Ta pravidla pro přepis nedávejte do .htaccess ale přímo do konfigurace Apache (je to pro server snazší na zpracování).
Ve virtualhostu pro HTTP bych nedával podmínku, že se port nerovná 443, prostě bych přesměroval vše. A zároveň bych tam vše přesměrovával rovnou na správné cílové hostname – aby se přesměrovávalo rovnou http://web1.ddns.com → https://www.web1.ddns.com a ne zbytečně nadvakrát http://web1.ddns.com → https://web1.ddns.com → https://www.web1.ddns.com. V konfiguraci virtualhsota pro HTTPS vám podle mne chybí přesměrování z web1.ddns.com na www.web1.ddns.com.
-
DNS mam zaregistrovane na changeip.com (neviem, ale zrejme je mozne k A zaznamu spravit aj variantu s www).
Ale ked tak uvazujem, tak co znamena www a naco to vlastne je? Bezny clovek do url www nepise (googlom to indexovat nepotrebujem, takze vlastne www variantu netreba).
Alebo vie mi niekto povedat k comu je dobre www ?
2 Filip Jirsák
Ako spravne upravit virtualhost ak sa rozhodnem zrusit "www".
Zrejme si budem musiet nastudovat aj co to ohladom konfiguracie apache, lebo vacsinou robim podla navodov co najdem na nete :)
-
Pokud chcete mít virtualhosty pro dva různé weby pro HTTP i HTTPS, budete mít pro každou ze čtyř variant jeden virtualhost, na virtualhostech pro HTTP nakonfigurujete přesměrování na HTTPS a na virtualhostech pro HTTPS nakonfigurujete klasický DocumentRoot. Podívejte se na Name-based Virtual Host Support (http://httpd.apache.org/docs/2.4/vhosts/name-based.html).
-
2 virtualhosty, jeden na HTTP:
ServerName domena.cz
ServerAlias *.domena.cz
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domena\.cz$ [NC]
RewriteRule ^(.*)$ http://domena.cz$1 [R=301,NE,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Druhy na HTTPS:
ServerName domena.cz
ServerAlias *.domena.cz
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domena\.cz$ [NC]
RewriteRule ^(.*)$ https://domena.cz$1 [R=301,NE,L]
-
2 virtualhosty, jeden na HTTP:
ServerName domena.cz
ServerAlias *.domena.cz
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domena\.cz$ [NC]
RewriteRule ^(.*)$ http://domena.cz$1 [R=301,NE,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Druhy na HTTPS:
ServerName domena.cz
ServerAlias *.domena.cz
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.domena\.cz$ [NC]
RewriteRule ^(.*)$ https://domena.cz$1 [R=301,NE,L]
Takhle určitě ne. Za prvé tam počítáte pouze s jednou doménou, darebacik chce dvě domény. Za druhé tam máte jenom přesměrování a nikde neřešíte samotné dokumenty. Za třetí úplně zbytečně variantu s prefixem a bez HTTPS přesměrováváte nadvakrát, o čemž jsem psal výše.
-
1/ pridat do Server alias snad neni neprekonatelny problem - nebo ano?
2/ popisuji pouze redirecty, dokumenty pocitam ze budou spolecne pro vsechny domeny a aliasy a umisti si je tam, kam bude potrebovat (priklanel bych se k virtualhostu do HTTPS ;) )
BTW - pro HTTPS musi mit patricne certifikaty, ale to je snad samozrejmost
-
1/ pridat do Server alias snad neni neprekonatelny problem - nebo ano?
Problém to není, akorát to bude k ničemu, když uživatel zadá do prohlížeče web1.ddns.com a přesměruje ho to na úplně jiný web https://web2.ddns.com.
dokumenty pocitam ze budou spolecne pro vsechny domeny
To by byla pěkná hloupost. Přínos toho mít jeden obsah pod dvěma doménami by nebyl žádný, za to by z toho vznikal zmatek a vyhledávače by to vyhodnotily jako duplicitní obsah a penalizovaly.
BTW - pro HTTPS musi mit patricne certifikaty, ale to je snad samozrejmost
To už má ale darebacik vyřešeno.
Když má být na jednom serveru hostováno několik webů, je nejjednodušší mít pro každý z nich dva virtualhosty, jeden pro HTTP a druhý pro HTTPS. Aspoň je hned na první pohled v konfiguraci vidět, kde je který web nakonfigurován. Pokud by si chtěl darebacik později konfiguraci zkrátit, může si nastudovat, jak se u přepisovacích pravidel používají proměnné a všechno přesměrování na HTTPS spojit do jednoho virtualhosta – protože pro weby chce použít jen kanonické názvy, bez přesměrování z prefixu www. Pokud by chtěl přesměrování i z webů s www (měl by to v DNS), pak by bylo rozumné mít na to druhý virtualhost.
-
OK zabudnime na to :)
Predstavme si, ze mam jeden virtualhost.
Klasicky v adresary
/var/www/web1.ddns.com
mam ulozeny obsah webu.
Na changeip.com mam zalozeny DNS na web1.ddns.com.
Chcel by som to nastavit tak, ze ked klient do url zada jednu z moznosti
web1.ddns.com
www.web1.ddns.com
https://web1.ddns.com
https://www.web1.ddns.com
tak aby ho to stale nasmerovlo do /var/www/web1.ddns.com (tam bude okrem ineho index.php, takze stale sa zobrazi rovnaky obsah).
Alebo to este zjednodusime
Staci ak zada klient
web1.ddns.com
tak aby ho to stale nasmerovlo do /var/www/web1.ddns.com (tam bude okrem ineho index.php, takze stale sa zobrazi rovnaky obsah).
Samozrejme web bude dostupny cez https (cize prijme kluce atd ...) a adresu v url predpokladam bude mathttps://web1.ddns.com
Ja som to trocha na zaciatku topicu skomplikoval, ze mam 2 virtualhosty (ja ich mam totiz viac) ale principialne sa to da vysvetlit aj na jednom.
BTW OT: ja som (isiel blbo podla navodov) a vypol som si 000-default.conf a potom ked som zadal do url nejaku DNS adresu (prip. IP adresu), tak ma to hodilo do ineho adresra a zobrazilo mi to uplne iny web co som chcel.
Takze 000-default.conf som o5 povolil a nasmeroval som ho do /var/www/index.php kde sa zobrazuje to co chcem (alebo je to tam ciste a nezobrazi sa nic).
Nevedel som, ze apache v /etc/pache2/sites-enable cita subory podla abecedy a ked nemam 000-default povoleny, tak to vezme prvy symlink (podla abecedy).
Cize nie na darmo ma defalt tie 000 na zaciatku :)
-
Musíte mít názvy web1.ddns.com a www.web1.ddns.com nastavené v DNS a nasměrované na váš server.
<VirtualHost *:80>
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
RewriteEngine on
RewriteRule ^(.*)$ https://web1.ddns.com$1 [R=301,NE,L]
</VirtualHost>
<VirtualHost *:443>
ServerName www.web1.ddns.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/web1.ddns.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/web1.ddns.com/privkey.pem
RewriteEngine on
RewriteRule ^(.*)$ https://web1.ddns.com$1 [R=301,NE,L]
</VirtualHost>
<VirtualHost *:443>
ServerName web1.ddns.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/web1.ddns.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/web1.ddns.com/privkey.pem
DocumentRoot /var/www/web1.ddns.com
</VirtualHost>
Předpokládá to, že v souboru [tt]/etc/letsencrypt/live/web1.ddns.com/cert.pem[/tt] je certifikát vystavený na obě jména [tt]web1.ddns.com[/tt] i [tt]www.web1.ddns.com[/tt]. Můžete pak doplnit k oběma HTTPS virtualhostům posílání HSTS hlavičky, jak to máte ve vašem úvodním příkladu. A pokud chcete použít PHP, musíte ho samozřejmě mít správně nakonfigurované.
-
Ano kluce generujem pre obidva (aj s www aj bez www)
./letsencrypt-auto certonly --webroot -w /var/www/web1.ddns.com -d web1.ddns.com -d www.web1.ddns.com
No a to by ma tiez zaujmalo (ked uz k tomu doslo). V niektorych prehliadacoch mi web nezobrazi a vyhodi hlasku
Vaše pripojenie nie je súkromné
Útočníci sa môžu pokúsiť ukradnúť vaše informácie z webu www.web1.ddns.com (napríklad heslá, správy alebo kreditné karty). Ďalšie informácie
NET::ERR_CERT_COMMON_NAME_INVALID
Automaticky odosielať niektoré informácie o systéme a obsah stránok do Googlu s cieľom pomôcť rozpoznávať nebezpečné aplikácie a weby. Pravidlá ochrany súkromia
Web www.web1.ddns.com zvyčajne chráni vaše informácie pomocou šifrovania. Keď sa Chrome tentokrát pokúsil pripojiť k webu www.web1.ddns.com, odoslal späť nezvyčajné a nesprávne poverenia. Môže sa to stať vtedy, keď sa za web www.web1.ddns.com snaží vydávať útočník alebo keď pripojenie preruší prihlasovacia obrazovka siete Wi‑Fi. Vaše informácie sú stále zabezpečené, pretože Chrome zastavil pripojenie ešte pred výmenou dát.
Web www.web1.ddns.com momentálne nemôžete navštíviť, pretože používa certifikát HSTS. Chyby siete a útoky sú zvyčajne dočasné, takže by táto stránka mala neskôr pravdepodobne fungovať.
-
Řekl bych, že tam máte buď jiný certifikát, nebo byl ten certifikát špatně vytvořen. Ale když neznáme skutečné jméno toho webu, nemůžu se na ten certifikát podívat, abych zjistil, kde přesně je problém.
-
Ano ja som sa pri vytvarani certifikatu pomylil a dostal som hlasku, ze certifikat je uz vytvoreny pre iny web atd .... uz si to nepamatam. Takze skusim to este raz od znova na cisto
-
Cize ak tomu spravne rozumiem, tak koremove domeny su reprezentovane bodkou ".".
Tie spravuje korenvy DNS a ten ma pod spravou domeny prveho radu (com, org, net atd ....)
Napr. com domenu v ramci dns zony, spravuje nejaka organizacia, ktora ponuka inym organizaciam domeny druheho radu (nieco.com, niecoine.com atakdale.com).
Domeny druheho radu su za poplatok.
Domeny tretieho radu ponukaju organizacie, ktore vlastnia domeny druheho radu a maju uz svoju vlastnu DNS zonu (resp. mozu, ale nemusia ponukat).
Ak ich ponukaju, tak spravidla to uz je bez poplatku.
Niekedy davno som si myslel, ze www je cast domeny napr. (www.nieco).com, ze to v zatvorke je jedna cast, ale potom som sa docital, ze www je domenou nasledujuceho radu.
Ale ked do url napises napr. google.com tak vzdy ta to presmeruje na https://www.google.com.
Neviem aky webserver pouziva google, ale ak apache, tak v DNS musi mat A zaznam na google.com a zaroven aj na www.google.com a v apache /etc/apache/sites-available/adresar-google.conf musi byt kvoli presmerovaniu na www minimalne toto ?
ServerName google.com
ServerAlias www.google.com
-
Pro koncové vlastníky jsou obvykle určené domény druhého řádu – třeba v TLD (top level domain, doména nejvyšší úrovně) sk, cz, com, org atd. Ale jsou i domény, kde je to jinak – třeba v doméně uk se až do roku 2014 registrovaly jen domény 3. úrovně pod doménami co.uk, org.uk a několika dalšími. Pokud nějaká organizace poskytuje další služby zdarma a poskytuje k nim samostatnou doménu, bývá to na doméně třetího řádu, protože tam už můžou své domény vytvářet „zdarma“ – to je případ třeba toho ddns.com, nebo je možné si takhle vytvářet jednoduché webové stránky pod doménou webnode.cz.
www.example.com je doména třetího řádu nebo také hostname. Dříve bylo zvykem takhle rozlišovat typ služby – třeba www.example.com pro web, ftp.example.com pro webový server, pop3.example.com pro poštovní server… Jenže tím, jak internet je hlavně web, pak dlouho dlouho nic a pak další služby, začalo se někomu zdát to www zbytečné a dnes se pro web běžně používá i varianta bez www (a naopak je považováno za chybu, pokud ta varianta neexistuje, alespoň ve formě přesměrování).
Jestli se přesměrovává z www.example.com na example.com nebo opačně je na uvážení majitele webu, kterou variantu si vybere jako základní.
V DNS musí být A záznamy pro oba názvy. Pokud už máte IPv6 adresu, měly by tam být i AAAA záznamy pro IPv6 protokol.
To ServerName a ServerAlias tam není kvůli přesměrování, ale proto, aby Apache věděl, že daná sekce VirtualHost se má použít právě v případě, kdy klient (prohlížeč) požaduje některé z těch jmen. Třeba v tom případě Google by tam ale byly dvě sekce – jedna s google.com, kde by bylo přesměrování, a druhá s www.google.com, kde už by byl samotný obsah. Dá se to spojit i do jedné sekce, ale připadá mi to nepřehledné. Rozdíl mezi ServerName a ServerAlias je v tom, aby server věděl, který název je primární a má ho použít třeba tehdy, když bude generovat chybovou stránku. ServerAlias pak serveru říká, že když bude klient požadovat daná jméno, má se také použít daná sekce, ale není to hlavní jméno toho webu. Dříve se to klidně nechávalo, že jste mohl jít na www.example.com i example.com a zobrazil se stejný obsah, ale nebylo tam přesměrování, dnes už se většinou používá přesměrování, aby jeden obsah měl právě jedno URL. ServerAlias ale sám o sobě přesměrování nezajistí.
-
Teraz som z toho trochu zmateny :) ako som spominal, free dns som si vybral changeip.com a tam som si vytvoril domenu.
Podla tohto obrazku je na konkretnu domenu mozne pridat niekolko zaznamov (ako je vidiet z obrazka, tak je mozne pridat zaznamy: A, MX, AAAA, CNAME a URL).
Ja som si len tak zo srandy teraz pridal dalsi A zaznam s nazvom abc a ako hostname tam mam teraz 3 zaznamy
abc.nieco.ddns.info
nieco.ddns.info
www.nieco.ddns.info
samozrejme domeny su vymyslene
Mam to chapat tak, ze 1 a 3 dmona su domeny stvrteho radu a prostredna domena je tretieho radu ?
A ked chcem aby sa mi zobrazovalo to iste pod vsetkymi menami, tak si musim vytvorit konfiguraky pre 3 virtualhosty a v kazdom pouzit iny ServerName a inu cestu pre DocumentRoot a 3 adresare s rovnakym obsahom ?
-
Mam to chapat tak, ze 1 a 3 dmona su domeny stvrteho radu a prostredna domena je tretieho radu ?
Ano.
A ked chcem aby sa mi zobrazovalo to iste pod vsetkymi menami, tak si musim vytvorit konfiguraky pre 3 virtualhosty a v kazdom pouzit iny ServerName a inu cestu pre DocumentRoot a 3 adresare s rovnakym obsahom ?
Stačil by jeden adresář a do něj nasměrovat všechny tři DocumentRoot. Na chybových stránkách by se vám pak ukazoval pro každou doménu správný název serveru. Nebo byste mohl všechny tři domény dát do jednoho virtualhostu, jeden název zvolit jako hlavní a použít pro ServerName a zbylé dva dát do ServerAlias. Pak by se na chybových stránkách zobrazovalo všude to ServerName. Ale také byste mohl ty chybové stránky upravit, aby se pro výpis názvu serveru nepoužívala proměnná SERVER_NAME ale HTTP_HOST, a pak by se zase na chybových stránkách zobrazoval název serveru odpovídající požadované doméně. Pokud tedy klient pošle správnou hlavičku (což dnes všechna prohlížeče dělají). Ono se to historicky různě vyvíjelo, takže dnes existuje třeba víc postupů, jak dosáhnout téhož, přičemž se ty postupy liší v nějakých okrajových případech.
Každopádně mít stejný obsah na více doménách by bylo matoucí pro uživatele i pro vyhledávače, takže bych se snažil tomu vyhnout. Obsah (DocumentRoot) bych dal na jednu doménu (jeden virtual host), a z těch zbývajících domén bych udělal přesměrování (druhý virtualhost).
<VirtualHost *:80>
ServerName nieco.ddns.info
ServerAlias abc.nieco.ddns.info
RewriteEngine on
RewriteRule ^(.*)$ http://www.nieco.ddns.info$1 [R=301,NE,L]
</VirtualHost>
<VirtualHost *:80>
ServerName www.nieco.ddns.info
DocumentRoot /var/www/www.nieco.ddns.info
</VirtualHost>
-
Nasiel som tento clanok (https://simonecarletti.com/blog/2016/08/redirect-domain-http-https-www-apache/) a podla toho to aj celkom dobre funguje.
Napr. pre web1.ddns.com.
V DNS musia byt A zanamy pre web1.ddns.com aj www.web1.ddns.com.
Ak zadam do url jednu z moznosti
web1.ddns.com
www.web1.ddns.com
http://web1.ddns.com
https://web1.ddns.com
https://www.web1.ddns.com
Tak to vzdy nasmeruje na https://www.web1.ddns.com
Konfigurak vyzera nasledovne
<VirtualHost *:80>
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
</VirtualHost>
<VirtualHost *:443>
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/web1.ddns.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/web1.ddns.com/privkey.pem
DocumentRoot /var/www/www.web1.ddns.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
</VirtualHost>
Sice regexpom velmi nerozumiem, ale asi to bude OK, kedze to funguje :)
Certikat a kluc musia mat spravne cesty a taktiez documentroot.
Dakujem vsetkym za cenne rady
-
Nasiel som tento clanok (https://simonecarletti.com/blog/2016/08/redirect-domain-http-https-www-apache/) a podla toho to aj celkom dobre funguje.
Napr. pre web1.ddns.com.
V DNS musia byt A zanamy pre web1.ddns.com aj www.web1.ddns.com.
Ak zadam do url jednu z moznosti
web1.ddns.com
www.web1.ddns.com
http://web1.ddns.com
https://web1.ddns.com
https://www.web1.ddns.com
Tak to vzdy nasmeruje na https://www.web1.ddns.com
Konfigurak vyzera nasledovne
<VirtualHost *:80>
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
</VirtualHost>
<VirtualHost *:443>
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/web1.ddns.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/web1.ddns.com/privkey.pem
DocumentRoot /var/www/www.web1.ddns.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
</VirtualHost>
Sice regexpom velmi nerozumiem, ale asi to bude OK, kedze to funguje :)
Certikat a kluc musia mat spravne cesty a taktiez documentroot.
Dakujem vsetkym za cenne rady
Neni pravda, nepresmeruje to https://web1.ddns.com. Zlaty nginx, kdyz vidim takovyhle bordel (a to stale provozuju apache v produkci).
-
Mas pravdu ... to som neskusal :) a fakt to nejde :-[
-
Vyzkousej:
<VirtualHost *:80>
DocumentRoot /var/www/web1.ddns.com/web
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
ServerAdmin webmaster@web1.ddns.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web1\.ddns\.com$ [NC]
RewriteRule ^(.*)$ http://www.web1.ddns.com$1 [R=301,NE,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/web1.ddns.com/web
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
ServerAdmin webmaster@web1.ddns.com
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /var/www/clients/client2/web15/ssl/web1.ddns.com.crt
SSLCertificateKeyFile /var/www/clients/client2/web15/ssl/web1.ddns.com.key
</IfModule>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web1\.ddns\.com$ [NC]
RewriteRule ^(.*)$ https://www.web1.ddns.com$1 [R=301,NE,L]
</VirtualHost>
-
A druhy web co redirectuje na web1
<VirtualHost *:80>
DocumentRoot /var/www/web2.ddns.com/web
ServerName web2.ddns.com
ServerAlias www.web2.ddns.com
ServerAdmin webmaster@web2.ddns.com
ErrorLog /var/log/ispconfig/httpd/web2.ddns.com/error.log
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/web2.ddns.com/web
ServerName web2.ddns.com
ServerAlias www.web2.ddns.com
ServerAdmin webmaster@web2.ddns.com
ErrorLog /var/log/ispconfig/httpd/web2.ddns.com/error.log
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /var/www/clients/client2/web16/ssl/*.web2.ddns.com.crt
SSLCertificateKeyFile /var/www/clients/client2/web16/ssl/*.web2.ddns.com.key
</IfModule>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
</VirtualHost>
Snad je to OK, vyzkousej
-
Neni pravda, nepresmeruje to https://web1.ddns.com. Zlaty nginx, kdyz vidim takovyhle bordel (a to stale provozuju apache v produkci).
Ja sa nebranim ani nginixu .... ale co .... apache je naraz zly ?
-
Nevim v cem by zapis v nginxu byl tak diametralne odlisny. Mozna by nam ho mohl ukazat...
-
Metoda bez "if"
server {
listen 80;
listen [::]:80;
server_name web1.ddns.com www.web1.ddns.com;
return 301 https://www.web1.ddns.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name web1.ddns.com;
ssl_certificate /etc/letsencrypt/live/web1.ddns.com/cert.pem
ssl_certificate_key /etc/letsencrypt/live/web1.ddns.com/privkey.pem
return 301 https://www.web1.ddns.com$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.web1.ddns.com;
ssl_certificate /etc/letsencrypt/live/web1.ddns.com/cert.pem
ssl_certificate_key /etc/letsencrypt/live/web1.ddns.com/privkey.pem
root /var/www/web1.ddns.com
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
...zbytek konfigurace...
}
Srovnat to s temi RewriteRule/RewriteCond...
-
Srovnat to s temi RewriteRule/RewriteCond...
Jenže ty RewriteCond jsou tam nesmyslné. Konfigurace Apache může být úplně stejná, jako vaše konfigurace nginxu, nahradil by se řádek za řádek.
-
Vyzkousej:
<VirtualHost *:80>
DocumentRoot /var/www/web1.ddns.com/web
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
ServerAdmin webmaster@web1.ddns.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web1\.ddns\.com$ [NC]
RewriteRule ^(.*)$ http://www.web1.ddns.com$1 [R=301,NE,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/web1.ddns.com/web
ServerName web1.ddns.com
ServerAlias www.web1.ddns.com
ServerAdmin webmaster@web1.ddns.com
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /var/www/clients/client2/web15/ssl/web1.ddns.com.crt
SSLCertificateKeyFile /var/www/clients/client2/web15/ssl/web1.ddns.com.key
</IfModule>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web1\.ddns\.com$ [NC]
RewriteRule ^(.*)$ https://www.web1.ddns.com$1 [R=301,NE,L]
</VirtualHost>
Toto funguje OK.
A druhy web co redirectuje na web1
<VirtualHost *:80>
DocumentRoot /var/www/web2.ddns.com/web
ServerName web2.ddns.com
ServerAlias www.web2.ddns.com
ServerAdmin webmaster@web2.ddns.com
ErrorLog /var/log/ispconfig/httpd/web2.ddns.com/error.log
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/web2.ddns.com/web
ServerName web2.ddns.com
ServerAlias www.web2.ddns.com
ServerAdmin webmaster@web2.ddns.com
ErrorLog /var/log/ispconfig/httpd/web2.ddns.com/error.log
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /var/www/clients/client2/web16/ssl/*.web2.ddns.com.crt
SSLCertificateKeyFile /var/www/clients/client2/web16/ssl/*.web2.ddns.com.key
</IfModule>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.web2\.ddns\.com$ [NC]
RewriteRule ^/(.*)$ https://www.web1.ddns.com [R=301,L]
</VirtualHost>
Snad je to OK, vyzkousej
Ale ja som nechcel smerovat z web2 na web1
Ten prvy konfig je uplne OK
OT ale chcel by som skusit aj nginix :)
-
Pro vetsinu veci byva jedno zda apache nebo nginx, ale jsou situace, kdy aplikace vyzaduje Apache a donutit ke stejne funkcionalite nginx neni az tak snadne.
Nginx ma zase sve vyhody.
Casto se nginx pouziva jako frontend k backendu apache nebo jineho weboveho serveru
Kazdy ma svoje vyhody a nevyhody, zatracovat jeden a druhy vychvalovat si netroufam