• Главная
  • Карта сайта
Не найдено

Preusmjeri .htaccess: preusmjerite na drugu domenu i preusmjerite na drugu stranicu

  1. Preusmjeri .htaccess: trajno preusmjeravanje, 301
  2. Kako postaviti preusmjeravanje na www (ili bez www)
  3. Kako stvoriti .htaccess
  4. Datoteka .htaccess ne radi
  5. Postoji li analogni .htaccess u nginx-u?
  6. autori
  7. x64 (zv. andi)

Dobra nedjelja!

Vrlo često u forumima možete naći pitanja o .htaccess - konfiguracijskoj datoteci Apache web poslužitelja. Glavni kamen spoticanja je u tome što razvoj nije imao zadatak prikladne konfiguracije za krajnjeg korisnika (distribucija ne uključuje ljusku za vizualne instalacije pomoću potvrdnih okvira, padajućih popisa, itd.), Ali administratori poslužitelja se izuzetno dobro nose s tim zadatkom, zadovoljavajući se s "manom" (iz Linux tima - čovjek - brzi vodič od programera ili u ovom slučaju od profesionalaca do profesionalaca).

U većini slučajeva potrebne su jednostavne manipulacije: bezuvjetno preusmjeravanje na drugo mjesto ili preusmjeravanje s jednog mjesta na drugo (recimo, kada se URL odjeljka promijenio). I svaka osoba počinje vjerovati da nikamo nema problema, a čak je i beskorisno tražiti rješenje na internetu i pretraživati ​​forum. Da vidimo što ti problemi zapravo nisu.

Da vidimo što ti problemi zapravo nisu

Preusmjeri .htaccess: trajno preusmjeravanje, 301

Ova stvar ima različita imena. Neponyatki mogu izazvati možda taj broj - zašto je 301? Bit leži u samom HTTP protokolu, koji odgovara na zahtjeve klijenata s određenim kodom statusa. Kod 404 Not Found poznat je gotovo svima. Kôd 200 OK je gotovo nepoznat, ali to znači da je sve u redu i dokument će biti prikazan u pregledniku. Ali kod 301 Moved Permanently znači da je dokument konačno premješten na novu adresu. To je ono što se često naziva preusmjeravanje, iako je ukupna količina odgovora označena kao - 3xx: Preusmjeravanje .

Apache ima nekoliko opcija za preusmjeravanja. Mod_rewrite pruža izvrstan mehanizam za rad s preusmjeravanjima, a ubuduće ću ga koristiti u primjerima. Mod_alias modul također ima smjernice za preusmjeravanja s određene adrese ili s adrese koja odgovara regularnom izrazu:
Preusmjeri trajno / http://newsite.ru/
RedirectMatch permanent. * Http: //newsite.ru/
No, mod_rewrite ima dodatne opcije za preusmjeravanje, tako da je najbolje koristiti ga (IMHO).

Općenito, za bezuvjetno vanjsko preusmjeravanje (nazovimo ga korisnik), u kojem preglednik automatski preusmjerava na drugu stranicu, obično neprimjetno za korisnika (promjene adresne trake), možete staviti takav kod u .htaccess:
RewriteEngine On
RewriteRule. * Http: //newsite.ru/ [L, R = trajno]
Ovdje prvi red uključuje mehanizam mod_rewrite modula, kojem je dopušteno učiniti bilo što s adresama. Nazovimo ovu pretvorbu URL-a po uvjetima u letu. Drugi redak izravno definira pravilo za pretvorbu, u gornjem primjeru svi zahtjevi će biti preusmjereni na http://newsite.ru/. Zastavice se stavljaju u uglaste zagrade: L - posljednje (posljednje) pravilo, R - tip preusmjeravanja (preusmjeravanje), označeno kao R = kod, gdje je oznaka abecedno ili numeričko (trajno ili 302).

Zapravo, mod_rewrite je vrlo korisna stvar, jer upravo zbog toga mnogi motori aktivno koriste takozvani CNC (Human URL Understandable). Ako niste upoznati s ovim pojmom, objasnit ću vam primjer. Članak o besplatne motore za web-lokaciju ima adresu: https://a-panov.ru/2014/11/free-cms/

Gledajući ovaj URL, odmah je jasno da je članak objavljen u studenom 2014. Uklanjanjem naslova s ​​kliznom crtom - https://a-panov.ru/2014/11/ - dobit ćemo popis svih publikacija za studeni. Uobičajene adrese upišite:

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

nema posebne ljubavi. Vidjevši takvu adresu, ne možete reći o stranici na kojoj on vodi, apsolutno ništa.

Ova metoda je dobra kada vam je svejedno na koju stranicu nove web-lokacije želite povezati. Ali ako ste se premjestili na drugu domenu, preporučujemo da sve zahtjeve preusmjerite dok održavate adrese. Da biste to učinili, upotrijebite sljedeći kôd:
RewriteRule ^. * $ Http://newsite.ru/$0 [QSA, L, R = trajno]
Nova QSA zastavica će također spremiti parametre koji se mogu naći na adresama nakon upitnika. U već poznatom primjeru:

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

ako stavim kod u .htaccess gore, tada će biti preusmjeravanje na adresu http://newsite.ru/?p=389 koja bez te zastavice ne bi postojala.

U daljnjem tekstu ću izostaviti direktivu o pretvorbi:
RewriteEngine On
samo zapamtite: ako koristite mehanizam mod_rewrite, onda se svi uvjeti / konverzije moraju izvršiti nakon ove direktive. Da biste onemogućili sljedeći redak:
RewriteEngine Off
u skladu s tim, za svako pravilo nema potrebe za stalnim "uključivanjem" transformacija - počinje se obavljati automatski, odmah nakon prve direktive.

Kako postaviti preusmjeravanje na www (ili bez www)

Takva preusmjeravanja su potrebna za slučajeve kada je stranica dostupna na opcijama nsite.ru i www.nsite.ru, u ovom slučaju, tražilice ih smatraju duplikatima i mogu ili odabrati jednu od opcija kao glavno zrcalo , ili u pretrazi postoje opcije s obje domene. Općenito, ovo je negativan čimbenik pri rangiranju web-lokacije.

Opcija je jednostavnija za jednu domenu. Preusmjeravanje se vrši s poddomene www.site.ru na site.ru:
RewriteCond% {HTTP_HOST} ^ www site
RewriteRule. * Http: //nsite.ru/$0 [QSA, L, R = trajno]
Ovo je mjesto gdje se pojavila nova direktiva RewriteCond koja postavlja uvjet pod kojim bi preusmjeravanja trebala funkcionirati - pravila RewriteRule . Uvjet, u ovom slučaju, naziv domene koji odgovara www.nsite.ru (u regularnim izrazima, simbol točke znači "bilo koji znak", pa ga je poželjno štititi obrnutom kosom crtom).

Obrnuto preusmjeravanje je također vrlo jednostavno:
RewriteCond% {HTTP_HOST} ^ nsite \ t
RewriteRule. * Http://www.nsite.ru/$0 [QSA, L, R = trajno]
Obje opcije rade, ali imaju mali minus - za svaki novi config potrebno je zamijeniti domenu nsite.ru vlastitom. Je li moguće napraviti jedinstvenu opciju? Jednostavno!

Preusmjeri s bilo koje www poddomene:
RewriteCond% {HTTP_HOST} ^ www (. *) $
RewriteRule. * Http: //% 1 / $ 0 [QSA, L, R = trajno]

Preusmjeravanje na poddomenu s www:
RewriteCond% {HTTP_HOST}! ^ Www.
RewriteRule. * Http: //www.% {HTTP_HOST} / $ 0 [QSA, L, R = trajno]

% {HTTP_HOST} - trenutna domena

Kako stvoriti .htaccess

Takva se pitanja također pojavljuju. Problem je u tome što vam standardni Explorer (aplikacija u Windowsima koji je odgovoran za grafičko sučelje) ne dopušta stvaranje datoteka koje počinju s točkom (kreiranjem datoteka ili mapa desnim klikom na radnu površinu ili u prozoru i odabirom željene akcije s popisa Kreiraj ). No, postoji izlaz: otvorite standardni Notepad snimač, odaberite File → Save as ... u izborniku i navedite .htaccess kao naziv spremljene datoteke - nakon toga će biti kreiran.

Datoteka .htaccess ne radi

Postoje slučajevi kada direktive iz datoteke ne rade. To je obično uzrokovano činjenicom da je podrška za .htaccess onemogućena u konfiguraciji Apachea, za koju je direktiva odgovorna:
AllowOverride none

To se obično radi kako bi se donekle povećala brzina - u ovom slučaju web-poslužitelj ne pretražuje niti analizira .htaccess.

Također je moguće da se Apache ne koristi na poslužitelju, na primjer, IIS je glavni "gost" na Windows hostingu. Radi pojašnjenja, kontaktirajte podršku svog hostera.

Postoji li analogni .htaccess u nginx-u?

Još jedno često pitanje. Na ovom web poslužitelju to nije moguće. Međutim, to obično nije potrebno. Činjenica je da se nginx obično instalira kao frondend, tj. Prihvaća i obrađuje sve zahtjeve koji se ili izvršavaju ili preusmjeravaju na pozadinu, koju može izvesti Apache, koji se može dodatno konfigurirati pomoću .htaccess.

autori

nije online 1 dan

x64 (zv. andi)

Komentari: 2834 Publikacije: 394 Registracija: 02-04-2009

Htaccess u nginx-u?
Neponyatki mogu izazvati možda taj broj - zašto je 301?
Ru/?
Ru/?
Ru/?
Je li moguće napraviti jedinstvenu opciju?
Htaccess u nginx-u?
Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью