Man ir jāatzīstas (FAKE / Gibson) Ēriks sasmalcina

Mēģinu visas vietnes vietnes vienā direktorijā novirzīt uz noteiktu lapu, izmantojot htaccess.

Piemērs kaut kas līdzīgs

  • example.com/forums/
  • example.com/forums/pages
  • example.com/forums/subdirectory/
  • example.com/forums/subdirectory/page.html

būtībā jebkas iekšā /forums/ tikai uz

example.com/groups/subdirectory/

Tās būtu pastāvīgas izmaiņas. Būtībā es nopirku jaunu domēnu izsolē, uz kuru es migrēju savu vietni, un es saņemu daudz 404 no saitēm uz to, kurš iepriekš bija šajā domēnā.

  • Vai jūsu jaunajā vietnē ir arī mapes “forumi”? Tas rada lielas atšķirības attiecībā uz risinājumiem.

Es nopirku jaunu domēnu izsolē, uz kuru es migrēju savu vietni, un es saņemu daudz 404 no saitēm uz personām, kas iepriekš bija šajā domēnā.

Šajā gadījumā 404 atbilde neapšaubāmi ir pareizi atbildi. Pareizi lietotājiem un meklētājprogrammām. (Jūs pat varētu nosūtīt spēcīgāku / apzinātāku atbildi "410 Gone" - galu galā šīs lapas vairs neatgriežas, šķiet.)

Novirzīšana patiešām ir jēga tikai tad, ja saturs ir pārvietots uz citu URL vai ja jums ir līdzīgs / saistīts saturs jaunajā URL.

  • Mulsina lietotāju novirzīšana uz pilnīgi citu lapu, kas nav saistīta ar viņu gaidīto saturu. Līdz ar to, visticamāk, lielākā daļa lietotāju vienkārši “atlec”. Labāka atbilde būtu pielāgots 404, kas izskaidro, kāpēc lapa vairs nepastāv, un mēģina piesaistīt lietotāju uzmanību citos veidos, iespējams, iesakot (dažas no jūsu labākajām) jūsu vietnes lapām, kas viņiem varētu šķist interesantas.

  • Meklētājprogrammu robotu novirzīšana uz pilnīgi citu / nesaistītu lapu, visticamāk, tiks uzskatīta par soft-404. Bet arī daudzu URL novirzīšana uz vienu lapu, visticamāk, tiks uzskatīta par soft-404.

Tātad, jūs neko nedarīsit, novirzot šajā gadījumā, un tas pat varētu būt solis atpakaļ.

Ja nemaldos, to var izdarīt diezgan viegli šādi:

RedirectMatch /forums/.* https://example.com/groups/subdirectory/

Punkts nozīmē "jebkura rakstzīme", zvaigznīte nozīmē "reizes 0 vai jebkuru lielāku skaitli", un norādītajai vietai vienmēr jābūt rakstītai pilnībā.

  • 2 Jūs droši vien domājat RedirectMatch, tā vietā Redirect. RedirectMatch izmanto regex; Redirect izmanto vienkāršu prefiksu saskaņošana. (Tomēr jums ir jāmaina modeli lai iekļautu virknes enkura sākumu un aizmuguri .* ir lieks. The mērķa URL nav vajadzība būt "pilnībā rakstītam", jo tas tā nav vajadzība lai būtu absolūti. Tas var būt saknes relatīvs URL, kas sākas ar slīpsvītru. Lai gan bieži tiek ieteikts absolūtais URL.)
  • @MrWhite - Tā tam tiešām bija jābūt RedirectMatch. Bet, atkarībā no servera, Redirect izmanto ne tikai vienkāršu prefiksu atbilstību. Vienkārši pārbaudiet šo .htaccess līniju vietnē, kuru izveidoju pats: Redirect http.*://gezondezorg.org/behandelkosten.*.php https://gezondezorg.org/vergoedingsregulering.php. (Jums būs man jātic, ka tā ir līnija.)
  • "atkarībā no servera" - kādā veidā tas "atkarīgs no servera"? Kas šai direktīvai būtu jādara?
  • @MrWhite ~ Vakar veicu dažus testus, kas man lika noticēt, ka tāda paša veida regex novirzīšana darbojās vienā vietnē vienā resursdatorā, nevis citā vietnē citā resursdatorā. Pārbaudīja un atkārtoti pārbaudīja sintakses kļūdas. Bet es šodien nevaru atkārtot savus secinājumus. Laikam kļūdījos. Atvainojiet, ka tērēju laiku. // Vai jūs varat izskaidrot parauga modifikāciju ar piemēru? Vai jūs atsaucāties uz prefiksa atbilstību vai atbilstību manā atbildē?
  • - Laikam kļūdījos. - Iespējams, ka esat redzējis kešatmiņā saglabātu atbildi (izplatīta problēma, pārbaudot novirzīšanu)? The Redirect direktīva jūsu komentārā nevajadzētu ir kaut ko pielīdzinājuši - tāpēc man ir neizpratne. (Bet, nezinot faktisko pieprasīto URL, to ir grūti pārbaudīt.) Nav jāuztraucas, paldies par sekošanu. The Redirect direktīva neatbalsta nekādu regex vai aizstājējzīmju sintaksi. Tātad, tādas rakstzīmes kā .* URL (pirmais arguments) sakritīs ar burtisku zvaigznīti.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?