Si të ridrejtoni www në Non-www me Apache në CentOS 7
Prezantimi
Shumë zhvillues të uebit duhet t'i lejojnë përdoruesit e tyre të hyjnë në uebsajtin ose aplikacionin e tyre si përmes nëndomainit www ashtu edhe domenit rrënjë (jo-www). Kjo do të thotë, përdoruesit duhet të kenë të njëjtën përvojë kur vizitojnë www.my-website.com
dhe my-website.com
. Ndërsa ka shumë mënyra për ta vendosur këtë, zgjidhja më miqësore me SEO është të zgjidhni se cilin domen preferoni—nëndomainin ose domenin rrënjë—dhe t'i ridrejtoni serverin e uebit përdoruesit që vizitojnë tjetrin në domenin e preferuar.
Ka shumë lloje ridrejtimesh HTTP, por në këtë skenar, është më mirë të përdorni një ridrejtim 301, i cili u thotë klientëve: \Uebfaqja që keni kërkuar është zhvendosur përgjithmonë në një URL tjetër. Shkoni atje në vend të kësaj. Sapo shfletuesi të marrë kodin e përgjigjes HTTP 301 nga serveri, ai dërgon një kërkesë të dytë në URL-në e re të dhënë nga serveri dhe përdoruesit i paraqitet uebsajti, ndoshta duke mos vënë re kurrë se ata ishin ridrejtuar.
Pse të mos konfiguroni serverin tuaj të uebit që të shërbejë thjesht të njëjtën faqe interneti për kërkesat për të dy emrat e domeneve? Kjo mund të duket më e lehtë, por nuk jep avantazhet e SEO të ridrejtimit 301. Një ridrejtim i përhershëm u tregon zvarritësve të motorëve të kërkimit se ka një vendndodhje kanonike për faqen tuaj të internetit dhe kjo përmirëson renditjen e kërkimit të asaj URL.
Në këtë tutorial, ju do të konfiguroni një ridrejtim 301 duke përdorur Apache në CentOS 7. Nëse jeni duke ekzekutuar Nginx në vend të Apache, shikoni këtë tutorial në vend të kësaj: Si të ridrejtoni www në Non-www me Nginx në CentOS 7
Parakushtet
Për të përfunduar këtë tutorial, së pari ju duhet:
- Privilegjet e superpërdoruesit në serverin që po ekzekuton Apache. Nëse nuk e keni tashmë atë të konfiguruar, ndiqni udhëzuesin tonë të konfigurimit fillestar të serverit me CentOS 7.
- Apache është instaluar dhe konfiguruar për të shërbyer uebsajtin tuaj. Ndiqni këtë tutorial për ta bërë këtë: Si të instaloni serverin në internet Apache në CentOS 7.
- Një emër domaini i regjistruar. Nëse nuk e keni ende, mund të merrni një falas nga ky artikull nga dokumentacioni ynë që tregon se si ta bëni këtë.
Le të fillojmë duke konfiguruar të dhënat tuaja DNS.
Hapi 1 - Konfigurimi i regjistrimeve DNS
Së pari, duhet t'i drejtoni si www.my-website.com
dhe my-website.com
te serveri juaj që funksionon Apache. (Pjesa tjetër e tutorialit supozon se domeni juaj është my-website.com
. Zëvendësojeni atë me domenin tuaj kudo që ta shihni më poshtë.) Këtë do ta bëni duke krijuar një rekord DNS A për çdo emër që tregon adresën IP të serverit tuaj Apache.
Hapni tastierën në internet të ofruesit tuaj DNS. Ky tutorial përdor DigitalOcean DNS.
Në formën Shto një domen, fut emrin e domenit të regjistruar në fushën e tekstit dhe kliko Shto domen. Kjo do të shfaqë faqen e domenit të ri, ku mund të shikoni, shtoni dhe fshini regjistrimet për domenin.
Nën Krijo regjistrim të ri, shkruani \@ në fushën e tekstit HOSTNAME. Ky është një karakter i veçantë që tregon se po shtoni një rekord për emrin e domenit rrënjë, një rekord thjesht për my-website.com
. Në fushën e tekstit DO DREJTOJ NË, futni adresën publike IPv4 të serverit tuaj dhe klikoni Krijo regjistrim >. (Nuk ka nevojë të ndryshohet TTL.)
Për regjistrimin tuaj të dytë DNS, mund të përdorni një rekord CNAME në vend të një regjistrimi A. Një rekord CNAME është një pseudonim që tregon një emër tjetër në vend të një adrese IP. Mund të krijoni një CNAME që drejton www.my-website.com
te my-website.com
dhe çdo kërkesë HTTP për nëndomainin www do të gjente rrugën e saj te serveri juaj pasi sapo keni krijuar rekordin A për domenin rrënjë. Por për t'i mbajtur gjërat të thjeshta, thjesht krijoni një tjetër regjistrim si ai i pari, duke futur \www në fushën HOSTNAME dhe adresën IP publike të serverit në DO DREJTIM TË fushë.
Kur të keni krijuar të dy regjistrimet, duhet të duket diçka si kjo:
Me dy regjistrimet në vend, kërkesat në ueb për my-website.com
dhe www.my-website.com
duhet të arrijnë në serverin tuaj Apache. Tani le të konfigurojmë serverin.
Hapi 2 - Konfigurimi i Ridrejtimit në Apache
Serveri i uebit Apache ofron dy module për t'ju ndihmuar të konfiguroni ridrejtimet: mod_alias
dhe mod_rewrite
. Megjithëse mod_rewrite
është më i fuqishëm, mod_alias
është më i drejtpërdrejtë për t'u kuptuar dhe përdorur. Nëse keni nevojë të ridrejtoni kërkesat që përmbajnë vargje të veçanta të pyetjeve, për shembull, ose tituj HTTP, do t'ju duhet të përdorni mod_rewrite
. Shumë zgjedhin mod_rewrite
për aftësitë e tij të përputhjes së shprehjeve të rregullta, të cilat i mungojnë mod_alias
. Por për rastin e thjeshtë të ridrejtimit të të gjitha kërkesave për www.my-website.com
në my-website.com
, mod_alias
do të funksionojë. (Vetë Apache rekomandon zgjedhjen e mod_alias
kur është e mundur, duke thënë se zgjedhja e mod_rewrite
kur është e panevojshme \çon në konfigurime që janë konfuze, të brishta dhe të vështira për t'u mirëmbajtur.)
Moduli duhet të aktivizohet si parazgjedhje në CentOS 7, por për të kontrolluar dyfish, ekzekutoni këtë komandë:
- httpd -M | grep alias_module
Nëse alias_module (i përbashkët)
shfaqet në dalje, moduli është tashmë i aktivizuar. Nëse jo, aktivizojeni duke e shtuar këtë rresht te /etc/httpd/conf.modules.d/00-base.conf
:
- echo “LoadModule alias_module modules/mod_alias.so” | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf
Me mod_alias
të aktivizuar, ju mund të përdorni direktivat Ridirect
, RedirectMatch
dhe të tjera të listuara në dokumentet mod_alias
në dokumentet tuaja Konfigurimi i Apache.
Tani le të konfigurojmë VirtualHost
-të tuaj.
Siç thuhet në Parakushtet, duhet ta keni tashmë faqen tuaj të internetit të konfiguruar në Apache. Mund të konfigurohet në skedarin kryesor të konfigurimit të Apache (/etc/httpd/conf/httpd.conf
) ose ndoshta në skedarin e tij (p.sh., /etc/httpd/conf.d/ my-website.com.conf
). Nëse keni përdorur Udhëzuesin e Instalimit Apache të lidhur në Parakushtet për të konfiguruar VirtualHost
-të tuaja, ai mund të jetë në një skedar si /etc/httpd/sites-available/my-website. com.conf
. Kudo ku është konfiguruar faqja juaj kryesore, hapeni atë skedar në vi
ose në redaktorin tuaj të preferuar (yum install nano
, nëse preferoni):
- sudo vi /etc/httpd/conf/httpd.conf
Kërkoni për çdo direktivë ServerAlias
të vendosur në VirtualHost
. Nëse gjeni një linjë me ServerAlias
të vendosur në www.my-website.com
, hiqeni atë rresht. (Ose, nëse ajo rresht përmban shumë pseudonime në një listë të ndarë me presje, hiqni vetëm www.my-website.com
nga lista.) Duhet ta hiqni këtë pseudonim sepse do të krijoni një VirtualHost
të veçantë për nëndomainin që nuk përmban asgjë përveç Emri i serverit
dhe Ridrejtimi
. VirtualHost
kryesor për sajtin nuk do të shërbejë më kërkesa për www.my-website.com
.
Tani krijoni një VirtualHost
në një skedar të veçantë (p.sh. /etc/httpd/conf.d/www.my-website.com.conf
) :
- sudo vi /etc/httpd/conf.d/www.my-website.com.conf
Ngjitni përmbajtjen e mëposhtme në skedar, duke zëvendësuar my-website.com
me emrin tuaj të domenit:
<VirtualHost *:80>
ServerName www.my-website.com
Redirect permanent / http://my-website.com/
</VirtualHost>
Ruani dhe dilni kur të keni mbaruar. Nëse e keni krijuar këtë skedar në /etc/httpd/sites-available
, sipas udhëzuesit tonë të instalimit të Apache, krijoni një lidhje simbolike për skedarin në /etc/httpd/sites-enabled/:
- sudo ln -s /etc/httpd/sites-available/www.my-website.com.conf /etc/httpd/sites-enabled/
Ky VirtualHost
i ri konfiguron Apache-n për të dërguar një ridrejtim 301 te çdo klient që kërkon www.my-website.com
dhe i drejton ata të vizitojnë my-website.com
në vend të kësaj. Ridrejtimi ruan URI-në e kërkesës, kështu që një kërkesë për http://www.my-website.com/login.php
do të ridrejtohet në http://my-website.com /login.php
.
Shënim: nëse VirtualHost
kryesore e faqes suaj përmban një ServerAlias
me një nëndomain të shkrepjes—*.my-website.com
—duhet të konsideroni heqjen e tij dhe krijimin e një VirtualHost
të ri si ai që sapo keni krijuar për çdo nëndomain që dëshironi të ridrejtoni. Nëse nuk dëshironi t'i ridrejtoni të gjitha nëndomainët dhe keni nevojë që disa prej tyre të vazhdojnë të shërbehen nga VirtualHost
kryesor, është më mirë të emërtoni në mënyrë eksplicite çdo nëndomain si një pseudonim, veçanërisht tani që keni një nëndomein. kërkesat e të cilit nuk dëshironi të përputhen pa dashje me VirtualHost
kryesor. (Ju mund ta emërtoni çdo nëndomain në rreshtin e tij ServerAlias
, ose t'i emërtoni të gjitha si një listë të ndarë me presje në një linjë ServerAlias
.)
Nëse duhet të mbani ServerAlias
për *.my-website.com
, duhet të siguroheni që Apache të ngarkojë www VirtualHost
të ri përpara fillimit kryesor një, sepse nëse ai kryesor është i ngarkuar i pari, Apache do ta përdorë atë për të trajtuar kërkesat për www.my-website.com
meqenëse ai emër përputhet me pseudonimin e shkronjave të egra. Ekzekutoni komandën e mëposhtme për të parë se cili VirtualHost
do të ngarkohet i pari pasi të rinisni Apache:
- httpd -S
Kërkoni rreshtat që përmbajnë namevhost my-website.com
dhe namevhost www.my-website.com
. Nëse linja www shfaqet së pari, ju jeni gati. Nëse VirtualHost
për domenin rrënjë shfaqet së pari, megjithatë, ka disa mënyra për ta bërë Apache të ngarkojë fillimisht www:
- Nëse
VirtualHost
juaj kryesor gjendet në një skedar (p.sh./etc/httpd/conf/httpd.conf
) që përdorInclude
ose direktivaIncludeOptional
për të përfshirë direktorinë që përmban wwwVirtualHost
tuaj të re, thjesht lëvizni atë rreshtInclude
mbi kodin kryesorVirtualHost
> brenda skedarit. - Nëse skedarët tuaj kryesorë
VirtualHost
dhe skedarët tuaj të ri wwwVirtualHost
përmbahen në të njëjtën direktori (p.sh.,/etc/httpd/conf.d/
), mund ta detyroni Apache-n të ngarkojë fillimisht www-në duke riemërtuar skedarët dhe duke i vendosur disa numra emrave të skedarëve. Vendosni01-
në emrin e skedarit të wwwVirtualHost
(p.sh.,/etc/httpd/conf.d/01-www.my-website.com. conf
) dhe02-
në emrin e skedarit kryesor tëVirtualHost
(p.sh.,/etc/httpd/conf.d/02-my- website.com.conf
).
Ekzekutoni përsëri httpd -S
për t'u siguruar që www VirtualHost
të shfaqet fillimisht.
Kur të jeni gati, rinisni Apache:
- sudo systemctl restart httpd
Përpara se të vizitoni www.my-website.com
në shfletuesin tuaj, bëni një kërkesë duke përdorur curl
ose në serverin tuaj ose në makinën tuaj lokale (nëse curl
është instaluar në vend):
- curl -IL http://www.my-website.com
Flamuri -I
i thotë curl
të shfaqë vetëm titujt nga përgjigja e serverit. Flamuri -L
i thotë curl
t'i bindet çdo ridrejtimi nga serveri duke bërë automatikisht një kërkesë të dytë, këtë herë në URL-në e dhënë në Vendndodhja
header (ashtu siç do të bënte një shfletues ueb). Meqenëse keni konfiguruar ridrejtimin 301, curl
duhet të bëjë dy kërkesa dhe ju duhet të shihni vetëm titujt e dy përgjigjeve:
OutputHTTP/1.1 301 Moved Permanently
Date: Tue, 03 Jan 2023 19:24:44 GMT
Server: Apache/2.4.53
Location: http://my-website.com/
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 OK
Date: Tue, 03 Jan 2023 19:24:44 GMT
Server: Apache/2.4.53
Last-Modified: Thu, 01 Dec 2022 22:10:57 GMT
ETag: "39-5eecb7ed6bfc9"
Accept-Ranges: bytes
Content-Length: 57
Content-Type: text/html; charset=UTF-8
Në përgjigjen 301 (Moved Permanently) ndaj kërkesës origjinale për http://www.my-website.com
, vini re titullin e dytë deri në të fundit: Vendndodhja: http://my- website.com
. Përgjigja e dytë është nga kërkesa vijuese e curl
në URL-në e dhënë në atë titull Vendndodhja
dhe nëse faqja juaj e internetit është e shëndetshme, serveri duhet të ishte përgjigjur me 200 (OK) .
Më në fund, vizitoni http://www.my-website.com
në shfletuesin tuaj të internetit. Blini sytë dhe do të humbisni ridrejtimin. Faqja juaj e internetit duhet të shfaqet si zakonisht, por shikoni përsëri në shiritin tuaj të adresave dhe vini re se \www mungon në URL-në. Shumica e përdoruesve nuk do ta vënë re kurrë këtë, dhe kështu ata do të kenë të njëjtën përvojë sikur të kishin kërkuar http://my-website.com
.
konkluzioni
Në këtë tutorial, ju keni shtuar dy regjistrime DNS për faqen tuaj të internetit dhe keni konfiguruar Apache për të ridrejtuar një domen dytësor në domenin tuaj të preferuar. Tani faqja juaj e internetit është e arritshme përmes të dy domeneve. Ndoshta ishte para se të lexoni këtë tutorial; ndoshta ju po e shërbenit direkt nga të dy emrat e domenit. Por me vetëm katër linja të tjera të konfigurimit Apache, ju keni përmirësuar pozicionin e faqes suaj të internetit në sytë e motorëve të kërkimit - dhe në këtë mënyrë e keni ekspozuar atë ndaj më shumë përdoruesve në internet.
Jeni kurioz për modulin më të fuqishëm mod_rewrite
? Shikoni tutorialin tonë Si të rishkruani URL-të me mod_rewrite për Apache në Ubuntu 22.04.