GNU/Linux >> Znalost Linux >  >> Linux

Jak přesměrovat adresy URL pomocí Nginx

Co je přesměrování?

Přesměrování je funkce webového serveru, která přesměruje provoz z jedné adresy URL na druhou. Přesměrování je důležitou funkcí v případě potřeby. Existuje několik různých typů přesměrování, ale běžnější formy jsou dočasné a trvalé. V tomto článku uvedeme několik příkladů přesměrování prostřednictvím souboru vhost, vynucení zabezpečeného připojení HTTPS, přesměrování na www a bez www a také rozdíl mezi dočasným a trvalým přesměrováním.

PoznámkaProtože se jedná o server Nginx, nebudou platit žádná pravidla .htaccess. Pokud používáte další populární webový server, Apache, bude tento článek užitečný.

Běžné metody přesměrování

Dočasná přesměrování (kód odpovědi:302 Found) jsou užitečná, pokud je adresa URL dočasně obsluhována z jiného umístění. Jsou například užitečné při provádění údržby a mohou uživatele přesměrovat na stránku údržby.

Trvalá přesměrování (kód odezvy:301 Trvale přesunuto) však informuje prohlížeč, že existuje stará adresa URL, kterou by měl zapomenout a již se o přístup nepokoušet. Jsou užitečné, když se obsah přesunul z jednoho místa na druhé.

Jak přesměrovat

Pokud jde o Nginx, je to řešeno v rámci .conf soubor, který se obvykle nachází v kořenovém adresáři dokumentu vašich stránek, /etc/nginx/sites-available/název_adresáře .conf . V kořenovém adresáři dokumentů jsou uloženy soubory vašeho webu a někdy může být v /html, pokud máte na serveru jeden web. Nebo pokud má váš server více stránek, může to být na adrese /domain.com. V obou případech to bude název vašeho souboru .conf. V /etc/nginx/sites-available/ adresář najdete výchozí soubor, který můžete zkopírovat nebo použít k připojení přesměrování. Nebo můžete vytvořit nový název souboru html.conf nebo domain.com.conf.

PoznámkaPokud se rozhodnete vytvořit nový soubor, nezapomeňte aktualizovat své symbolické odkazy v /etc/nginx/sites-enabled. Pomocí příkazu:

ln -s /etc/nginx/sites-available/domain.com.conf /etc/nginx/sites-enabled/domain.com.conf

Prvním příkladem, který si probereme, je přesměrování konkrétní stránky/adresáře na novou stránku/adresář.

Dočasné přesměrování ze stránky na stránku

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage redirect;
}

Trvalé přesměrování ze stránky na stránku

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage permanent;
}

Trvalé přesměrování www na jiné než www

server {
# Permanent redirect to non-www
server_name www.domain.com;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}

Trvalé přesměrování na www

server {
# Permanent redirect to www
server_name domain.com;
rewrite ^/(.*)$ http://www.newdomain.com/$1 permanent;
}

Někdy vyvstane potřeba změnit název domény webové stránky. V tomto případě bude přesměrování z adresy URL starých stránek na adresu URL nových stránek velmi užitečné, aby uživatelé věděli, že doména byla přesunuta na novou adresu URL.

Dalším příkladem, který si probereme, je přesměrování staré adresy URL na novou.

Trvalé přesměrování na novou adresu URL

server {
# Permanent redirect to new URL
server_name olddomain.com;
rewrite ^/(.*)$ http://newdomain.com/$1 permanent;
}

Přesměrování jsme přidali pomocí direktivy pro přepsání, o které jsme hovořili dříve. The ^/(.*)$ regulární výraz použije vše za / v URL. Například http://starý domain.com/index.html se přesměruje na http://nové doména.com/index.html. Abychom dosáhli trvalého přesměrování, za direktivu pro přepsání přidáme trvalé, jak můžete vidět v příkladu kódu.

Pokud jde o protokol HTTPS a jeho plné zabezpečení, je ideální k tomu, abyste každého přinutili používat https:// místo http://.

Přesměrování na HTTPS

server {
# Redirect to HTTPS
listen      80;
server_name domain.com www.domain.com;
return      301 https://example.com$request_uri;
}

Po zavedení těchto pravidel pro přepis se doporučuje otestovat konfiguraci před spuštěním restartu. Syntaxi Nginx lze zkontrolovat pomocí -t flag, aby se zajistilo, že v souboru není překlep.

Kontrola syntaxe Nginx

nginx -t

Pokud se nic nevrací, syntaxe je správná a Nginx se musí znovu načíst, aby se přesměrování projevilo.

Restartování Nginx

service nginx reload

Pro CentOS 7 který na rozdíl od CentOS 6 , používá systemd:

systemctl restart nginx

Přesměrování na spravovaném WordPress/WooCommerce

Pokud používáte naše spravované produkty WordPress/WooCommerce, k přesměrování může dojít prostřednictvím /home/s#/nginx/redirects.conf soubor. Každý web bude mít svůj vlastní s# což je uživatel FTP/SSH na web. Plugin s názvem „Přesměrování“ si můžete stáhnout, aby vám pomohl s jednoduchým přesměrováním ze stránky na stránku, jinak lze soubor redirects.conf použít k přidávání specifičtějších přesměrování pomocí příkladů vysvětlených výše.

Vzhledem k povaze spravované platformy poté, co budete mít pravidla v souboru redirects.conf, obraťte se na podporu a požádejte o opětovné načtení Nginx. Pokud vám výše uvedené kroky nevyhovují, kontaktujte náš tým podpory prostřednictvím chatu, lístku nebo telefonního hovoru. S Managed WordPress/WooCommerce získáte podporu 24/7, která je k dispozici a je připravena vám pomoci!


Linux
  1. Jak používat Nginx k přesměrování

  2. Jak nainstalovat WordPress pomocí Nginx na Ubuntu 18.04

  3. Jak zakázat ETag v NGINX

  1. Jak povolit HTTP2 v NGINX

  2. Jak přesměrovat http na https pomocí .htaccess?

  3. Jak nakonfigurovat Nginx pro spouštění PHP pomocí PHP-FPM

  1. Jak přesměrovat HTTP na HTTPS v Nginx

  2. Jak přesměruji svůj web pomocí (tečka) souboru htaccess?

  3. Jak zastavit nginx v používání portu 80