Ümbersuunamine .htaccess: suunatakse teisele domeenile ja suunatakse teisele lehele

  1. Ümbersuunamine .htaccess: püsiv ümbersuunamine, 301
  2. Kuidas suunata ümber www (või ilma www)
  3. Kuidas luua .htaccess
  4. .Htaccess-fail ei tööta
  5. Kas nginxis on .htaccess'i analoog?
  6. Kirjastaja
  7. x64 (teise nimega andi)

Hea pühapäev!

Väga sageli foorumis on küsimusi .htaccess - Apache veebiserveri konfiguratsioonifaili kohta. Peamine komistuskivi on see, et areng ei olnud lõppkasutaja jaoks mugav ülesanne (levitamine ei hõlma visuaalsete installide kesta kastide, rippmenüüde jms abil), kuid serverihaldurid hakkavad seda ülesannet märkimisväärselt täitma, olles rahul "mana" -ga (Linuxi meeskonnast - mees - kiire juhendaja arendajatelt või antud juhul spetsialistidelt spetsialistidele).

Enamikul juhtudel on vajalikud lihtsad manipulatsioonid: tingimusteta ümbersuunamine teisele saidile või ümbersuunamine ühest kohast teise (öeldes, kui sektsiooni URL on muutunud). Ja iga inimene hakkab uskuma, et seal pole mingit probleemi, ja isegi on mõttetu otsida lahendust Internetis ja otsida foorumist. Vaatame, millised need probleemid tegelikult ei ole.

Vaatame, millised need probleemid tegelikult ei ole

Ümbersuunamine .htaccess: püsiv ümbersuunamine, 301

Sellel on erinevad nimed. Neponyatki võib põhjustada selle numbri - miks on 301? Sisuliselt peitub HTTP-protokoll ise, mis vastab konkreetse olekukoodiga kliendi päringutele. 404 Ei leitud koodi on peaaegu kõigile teada. 200 OK kood on peaaegu tundmatu, kuid see tähendab, et kõik on korras ja dokument kuvatakse brauseris. Kuid kood 301 liikus püsivalt tähendab, et dokument kolis lõpuks uuele aadressile. Seda nimetatakse sageli ümbersuunamiseks, ehkki kogu vastuse kogum on tähistatud kui - 3xx: ümbersuunamine .

Apache'il on mitu ümbersuunamise võimalust. Mod_rewrite moodul annab suurepärase mehhanismi ümbersuunamistega töötamiseks ning tulevikus kasutan seda näidetes. Mod_alias moodulil on ka juhised ümbersuunamiseks konkreetsest aadressist või regulaaravaldisele vastavast aadressist:
Alaline suunamine / http://newsite.ru/
RedirectMatch püsiv. * Http://newsite.ru/
Kuid mod_rewrite'il on täiendavad suunamisviisid, nii et see on kõige parem kasutada (IMHO).

Üldiselt, tingimusteta välise (kutsume seda kasutajaks) ümbersuunamiseks, kus brauser suunab automaatselt teise lehekülje, tavaliselt kasutajale märkamatult (aadressiriba muutused), saate sellise koodi paigutada .htaccess:
RewriteEngine On
RewriteRule. * Http://newsite.ru/ [L, R = püsiv]
Siin sisaldab esimene rida mod_rewrite mooduli mehhanismi, millel on lubatud teha aadressidega midagi. Kutsume seda URL-i konverteerimist lendude tingimustel. Teine rida määratleb otse konversiooni reegli, ülaltoodud näites suunatakse kõik taotlused aadressile http://newsite.ru/. Lipud paigutatakse ruuduklambritesse: L - last (Last) reegel, R - suunamisviis (Redirect), tähistatud kui R = kood, kus kood on tähestikuline või numbriline nimetus (püsiv või 302).

Tegelikult on mod_rewrite väga kasulik asi, sest sellepärast kasutavad paljud mootorid nn CNC-d (Human URL Understanding). Kui te ei tunne seda terminit, selgitan ma näitega. Artiklist saidile tasuta mootorid on aadress: https://a-panov.ru/2014/11/free-cms/

Vaadates seda URL-i, on kohe selge, et artikkel on avaldatud 2014. aasta novembris. Pealkirja eemaldamisega tagumise kaldkriipsuga - https://a-panov.ru/2014/11/ - me saame nimekirja kõigist novembris avaldatud väljaannetest. Tavalised aadressid, tüüp:

https://a-panov.ru/?p=389

mingit erilist sõbralikkust. Sellist aadressi vaadates ei saa te midagi öelda lehekülje kohta, milles ta viib, absoluutselt mitte midagi.

See meetod on hea, kui te ei hooli sellest, milline uue saidi leht on seotud. Aga kui te kolite mõnda teise domeeni, on soovitatav suunata kõik taotlused aadresse säilitades. Selleks kasutage järgmist koodi:
RewriteRule ^. * $ Http://newsite.ru/$0 [QSA, L, R = püsiv]
Uus QSA- lipp salvestab ka parameetrid, mis leiduvad aadressimärki pärast küsimärgi. Juba tuttavas näites:

https://a-panov.ru/?p=389

kui paigutan koodi .htaccessis ülalpool, siis on ümbersuunamine aadressile http://newsite.ru/?p=389, mis ilma selle liputa poleks olemas.

Edaspidi jätan ma ümberkujundamise kaasamise direktiivi:
RewriteEngine On
pidage meeles: kui kasutate mod_rewrite mehhanismi, tuleb kõik tingimused / konversioonid teha pärast seda direktiivi. Järgmise rea keelamiseks kasutatakse järgmist:
RewriteEngine Off
vastavalt sellele ei ole iga reegli puhul mingit vajadust pidevalt ümber lülitada - see algab automaatselt, kohe pärast esimest direktiivi.

Kuidas suunata ümber www (või ilma www)

Sellised ümbersuunamised on vajalikud juhtudel, kui sait on saadaval valikutes nsite.ru ja www.nsite.ru, sel juhul leiavad otsingumootorid neid duplikaatidena ja võivad kas valida ühe neist valikutest peapeegel või otsingus on mõlema domeeni valikud. Üldiselt on see saidi järjestamisel negatiivne tegur.

Võimalus on ühe domeeni jaoks lihtsam. Ümbersuunamine toimub alamdomeenist www.site.ru saidile.ru:
RewriteCond% {HTTP_HOST} ^ www \ t
RewriteRule. * Http://nsite.ru/$0 [QSA, L, R = püsiv]
See on koht, kus ilmus uus RewriteCondi direktiiv, mis määrab tingimuse, mille korral peaks ümbersuunamine toimima - reeglid RewriteRule . Tingimus, antud juhul domeeninimi, mis vastab www.nsite.ru-le (regulaaravaldistes, tähemärk tähistab „mis tahes märki”, mistõttu on soovitatav seda kaitsta tagaküljel).

Tagurpidi ümbersuunamine on samuti väga lihtne:
RewriteCond% {HTTP_HOST} ^ veebisait \ t
RewriteRule. * Http://www.nsite.ru/$0 [QSA, L, R = püsiv]
Mõlemad valikud töötavad, kuid neil on väike miinus - iga uue konfiguratsiooni puhul on vajalik asendada nsite.ru domeen ise. Kas on võimalik teha unikaalne valik? Lihtne!

Ümbersuunamine mis tahes www-alamdomeenist:
RewriteCond% {HTTP_HOST} ^ www (. *) $
RewriteRule. * Http: //% 1 / $ 0 [QSA, L, R = püsiv]

Suunake alamdomeenile aadressil www:
RewriteCond% {HTTP_HOST}! ^ Www \ t
RewriteRule. * Http: //www.% {HTTP_HOST} / $ 0 [QSA, L, R = püsiv]

% {HTTP_HOST} - praegune domeen

Kuidas luua .htaccess

Sellised küsimused tekivad ka. Probleem on selles, et standard Explorer (Windowsi rakendus, mis vastutab graafilise liidese eest) ei võimalda luua punkte, mis algavad punktist (failide või kaustade loomine paremklõpsates töölaual või aknas ja valides loendist soovitud toimingu). Kuid on olemas väljapääs: avage tavaline Notepad-salvesti, valige menüüst File → Save as ... ja määrake salvestatud faili nimeks .htaccess - pärast seda luuakse.

.Htaccess-fail ei tööta

On juhtumeid, kus failide direktiivid ei tööta. See on tavaliselt tingitud asjaolust, et .htaccess-tugi on keelatud Apache'i konfiguratsioonis, mille eest direktiiv vastutab:
AllowOverride mitte ükski

Tavaliselt tehakse seda kiiruse suurendamiseks mõnevõrra - sel juhul ei otsinud veebiserver .htaccess'i.

Samuti on võimalik, et serveris ei kasutata Apache-i, näiteks IIS on peamine „külaline” Windowsi hostimisel. Selguse saamiseks pöörduge oma hosteri toe poole.

Kas nginxis on .htaccess'i analoog?

Teine üsna sagedane küsimus. Selles veebiserveris pole see võimalik. See ei ole tavaliselt vajalik. Fakt on see, et nginx on tavaliselt paigaldatud frondendiks, see tähendab, et ta aktsepteerib ja töötleb kõik taotlused, mida ta ise täidab või suunab taustaprogrammi, mida saab teostada Apache abil, mida saab täiendavalt konfigureerida .htaccess abil.

Kirjastaja

mitte 1 päev

x64 (teise nimega andi)

Kommentaarid: 2834 Väljaanded: 394 Registreerimine: 02-04-2009