Omdirigere .htaccess: omdirigere til et andet domæne og omdirigere til en anden side

  1. Omdirigere .htaccess: permanent omdirigering, 301
  2. Sådan opsættes en omdirigering til www (eller uden www)
  3. Sådan oprettes .htaccess
  4. .Htaccess-filen virker ikke
  5. Er der nogen analog af .htaccess i nginx?
  6. Forfattere
  7. x64 (aka andi)

God søndag!

Meget ofte i forummet kan du finde spørgsmål om .htaccess - Apache webserver konfigurationsfilen. Den væsentligste hindring er, at udviklingen ikke har haft det formål at foretage en bekvem konfiguration for slutbrugeren (distributionen omfatter ikke en skal til visuelle installationer ved brug af afkrydsningsfelter, drop-down lister osv.), Men serveradministratorer klare denne opgave bemærkelsesværdigt og er tilfreds med "mana" (fra Linux-teamet - mand - en hurtig vejledning fra udviklere, eller i dette tilfælde fra fagfolk til fagfolk).

I de fleste tilfælde er det nødvendigt med enkle manipulationer: ubetinget omdirigering til et andet websted eller omdirigering fra et sted til et andet (f.eks. Når webadressen til sektionen er ændret). Og hver person begynder at tro på, at der absolut ikke er noget problem, og det er endda ubrugeligt at søge efter en løsning på internettet og søge i forummet. Lad os se, hvad disse problemer virkelig ikke er.

Lad os se, hvad disse problemer virkelig ikke er

Omdirigere .htaccess: permanent omdirigering, 301

Denne ting har forskellige navne. Neponyatki kan måske forårsage det nummer - hvorfor er 301? Essensen ligger i selve HTTP-protokollen, som svarer til klientforespørgsler med en bestemt statuskode. 404 Not Found- koden er kendt for næsten alle. 200 OK- koden er næsten ukendt, men det betyder, at alt er i orden, og dokumentet vil blive vist i browseren. Men koden 301 flyttet permanent betyder, at dokumentet endelig flyttes til en ny adresse. Dette kaldes ofte omdirigering, selv om den samlede responspulje er angivet som - 3xx: Omdirigering .

Apache har flere muligheder for omdirigeringer. Mod_rewrite-modulet giver en fremragende mekanisme til at arbejde med omdirigeringer, og i fremtiden vil jeg bruge den i eksemplerne. Mod_alias-modulet har også direktiver til omdirigeringer fra en bestemt adresse eller fra en adresse, der svarer til det regulære udtryk:
Omdirigere permanent / http://newsite.ru/
RedirectMatch permanent. * Http://newsite.ru/
Men mod_rewrite har yderligere muligheder for omdirigering, så det er bedst at bruge (IMHO) det.

Generelt om en ubetinget ekstern (lad os kalde det bruger) omdirigering, hvor browseren automatisk omdirigerer til en anden side, normalt umærkelig for brugeren (adresselinjen ændres), kan du sætte sådan kode i .htaccess:
OmskrivningEngine On
RewriteRule. * Http://newsite.ru/ [L, R = permanent]
Her omfatter den første linje mekanismen for mod_rewrite- modulet, som har lov til at gøre noget med adresserne. Lad os kalde denne URL-konvertering ved hjælp af flyvebetingelser. Den anden linje definerer direkte reglen for konvertering; i eksemplet ovenfor omdirigeres alle henvendelser til http://newsite.ru/. Flag er placeret i firkantede parenteser: L - sidste (sidste) regel, R-omdirigeringstype (Omdirigering), angivet som R = kode, hvor kode er en alfabetisk eller numerisk betegnelse (permanent eller 302).

Faktisk er mod_rewrite en meget nyttig ting, fordi det på grund af dette er, at mange motorer aktivt bruger den såkaldte CNC (Human URL Understandable). Hvis du ikke er bekendt med dette begreb, vil jeg forklare med et eksempel. Artikel om gratis motorer til webstedet har adressen: https://a-panov.ru/2014/11/free-cms/

Når man kigger på denne webadresse, er det straks klart, at artiklen blev offentliggjort i november 2014. Ved at fjerne titlen med et efterfølgende skråstreg - https://a-panov.ru/2014/11/ - modtager vi en liste over publikationen i november. Normale adresser, type:

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

ingen særlig venlighed. Hvis du ser en sådan adresse, kan du ikke sige om den side, han fører, absolut ingenting.

Denne metode er god, når du er ligeglad med hvilken side af det nye websted der skal linke til. Men hvis du flyttede til et andet domæne, anbefales det at omdirigere alle anmodninger, mens adresserne opretholdes. For at gøre dette skal du bruge følgende kode:
RewriteRule ^. * $ Http://newsite.ru/$0 [QSA, L, R = permanent]
Det nye QSA- flag gemmer også de parametre, der kan findes i adresserne efter spørgsmålstegnet. I det allerede kendte eksempel:

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

Hvis jeg placerer koden i .htaccess ovenfor, vil der blive omdirigeret til adressen http://newsite.ru/?p=389 som uden dette flag ikke ville eksistere.

Herefter vil jeg udelade direktivet om integrering af transformation:
OmskrivningEngine On
Bare husk: Hvis du bruger mod_rewrite-mekanismen, skal alle betingelser / konverteringer udføres efter dette direktiv. For at deaktivere den følgende linje bruges:
OmskrivningEngine Off
For hver regel er der derfor ikke behov for konstant at tænde transformationer - det begynder at ske automatisk, umiddelbart efter det første direktiv.

Sådan opsættes en omdirigering til www (eller uden www)

Sådanne omdirigeringer er nødvendige for tilfælde, hvor webstedet er tilgængeligt på mulighederne nsite.ru og www.nsite.ru, i så fald betragter søgemaskinerne dem duplikater og kan enten vælge en af ​​mulighederne som hovedspejl , eller i søgningen vil der være muligheder fra begge domæner. Generelt er dette en negativ faktor, når du placerer et websted.

Mulighed lettere for et domæne. Omdirigering udføres fra underdomænet www.site.ru til site.ru:
RewriteCond% {HTTP_HOST} ^ www \ .nsite \ .ru $
RewriteRule. * Http://nsite.ru/$0 [QSA, L, R = permanent]
Det er her, hvor det nye RewriteCond- direktiv blev vist, hvilket angiver betingelsen for, hvorpå omdirigeringer skal fungere - RewriteRule- reglerne. Tilstanden, i dette tilfælde domænenavnet svarende til www.nsite.ru (i regulære udtryk betyder prikkens symbol "noget tegn", så det er tilrådeligt at beskytte det med en tilbageslag).

Omvendt omdirigering er også meget simpelt:
RewriteCond% {HTTP_HOST} ^ nsite \ .ru $
RewriteRule. * Http://www.nsite.ru/$0 [QSA, L, R = permanent]
Begge muligheder virker, men de har en lille minus - for hver ny config er det nødvendigt at erstatte nsite.ru domænet med din egen. Er det muligt at lave en unik mulighed? Easy!

Omdirigere fra et hvilket som helst www underdomæne:
RewriteCond% {HTTP_HOST} ^ www \. (. *) $
RewriteRule. * Http: //% 1 / $ 0 [QSA, L, R = permanent]

Omdirigere til et underdomæne med www:
RewriteCond% {HTTP_HOST}! ^ Www \.
RewriteRule. * Http: //www.% {HTTP_HOST} / $ 0 [QSA, L, R = permanent]

% {HTTP_HOST} - nuværende domæne

Sådan oprettes .htaccess

Sådanne spørgsmål opstår også. Problemet er, at standard Explorer (applikationen i Windows, som er ansvarlig for den grafiske grænseflade) ikke giver dig mulighed for at oprette filer, der starter med en prik (oprette filer eller mapper ved at højreklikke på skrivebordet eller i et vindue og vælge den ønskede handling fra Opret liste). Men der er en vej ud: Åbn standard Notesblokoptager, vælg Arkiv → Gem som ... i menuen, og angiv .htaccess som navnet på den gemte fil - derefter oprettes den.

.Htaccess-filen virker ikke

Der er tilfælde, hvor direktiver fra en fil ikke virker. Dette skyldes normalt, at .htaccess-understøttelsen er deaktiveret i Apache-konfigurationen, som direktivet er ansvarlig for:
TilladOvertride none

Dette gøres normalt for at øge hastigheden noget - i dette tilfælde søger og serverer webserveren ikke .htaccess.

Det er også muligt, at Apache ikke bruges på serveren, for eksempel er IIS den vigtigste "gæst" på Windows hosting. For at få afklaret, kontakt venligst din hosters support.

Er der nogen analog af .htaccess i nginx?

Et andet ret hyppigt spørgsmål. I denne webserver er dette ikke muligt. Dette er dog normalt ikke nødvendigt. Faktum er, at nginx normalt installeres som en frondend, det accepterer og behandler alle anmodninger, at den enten udfører sig selv eller omdirigerer til backend, som kan udføres af Apache, som kan konfigureres yderligere ved hjælp af .htaccess.

Forfattere

ikke online 1 dag

x64 (aka andi)

Kommentarer: 2834 Publikationer: 394 Registrering: 02-04-2009