Utilia

.htaccess pāradresēšanas ģenerators

Ģenerējiet 301 un 302 pāradresācijas .htaccess vai Nginx, piespiediet HTTPS un www, pārceliet domēnu un labojiet slīpsvītras, ar cilpu un ķēžu pārbaudi.

Serveris
Pāradresācijas veids
Kanoniskā adrese
Slīpsvītra beigās
Pārcelt visu domēnu

Vispirms izveidojiet pašreizējās konfigurācijas rezerves kopiju un pirms pārejas uz 301 pārbaudiet ar 302: pārlūkprogrammas kešatmiņā saglabā pastāvīgās pāradresācijas.

Pārbaudes

Kā lietot .htaccess pāradresēšanas ģeneratoru

  1. Izvēlieties Serveris: Apache (.htaccess) vai Nginx, tad Pāradresācijas veids: 301 – pastāvīga vai 302 – pagaidu.
  2. Laukā Lapu pāradresācijas ierakstiet vienu pāradresāciju rindā: vecais ceļš, atstarpe, tad jaunais URL, piemēram, /old-page.html /new-page/. Der arī tabulācija, komats vai ->, un varat ielīmēt pilnus vecos URL vai esošas Redirect 301 /a /b rindas.
  3. Ja vēlaties, ievadiet Jūsu domēns (piemēram, example.com), lai lapu pāradresācijas vestu tieši uz galējo adresi.
  4. Sadaļā Kanoniskā adrese atzīmējiet Piespiest HTTPS un izvēlieties Piespiest www, Noņemt www vai Atstāt www kā ir. Sadaļā Slīpsvītra beigās izvēlieties, vai to pievienot vai noņemt.
  5. Ja pārcelta visa vietne, aizpildiet Pārcelt visu domēnu ar Vecais domēns un Jaunā adrese (absolūts URL) un atstājiet atzīmētu Saglabāt ceļu, lai katra lapa nonāktu savā ekvivalentā.
  6. Izlasiet Pārbaudes, tad nokopējiet (Kopēt) vai lejupielādējiet (Lejupielādēt) noteikumus. Ar Ielādēt piemēru redzēsiet pilnīgu konfigurāciju.

Rīks darbojas jūsu pārlūkprogrammā, un nekas, ko ievadāt, netiek sūtīts uz serveri.

Kā darbojas ģenerētie noteikumi

Apache gadījumā rīks raksta mod_rewrite noteikumus, sākot ar vienu RewriteEngine On. Katra lapa kļūst par RewriteRule, kura šablons sākas ar ^/?, tāpēc tas darbojas gan .htaccess failā (kur sākuma slīpsvītra tiek noņemta), gan <VirtualHost> blokā. Punkti, kvadrātiekavas, plusa zīmes un citas regulāro izteiksmju rakstzīmes jūsu ceļos tiek ekranētas, bet atstarpe kļūst par \x20. Jaunajā URL $ un % tiek ekranēti, jo Apache tos lasītu kā atsauces, un karogs NE neļauj Apache URL kodēt otrreiz.

RewriteRule nekad neredz vaicājuma virkni. Ja vecā adrese to satur, piemēram, /product.php?id=42, rīks pievieno rindu RewriteCond %{QUERY_STRING} ^id=42$ un karogu QSD, lai vecie parametri tiktu izmesti, nevis pārkopēti uz jauno lapu.

Noteikumi ir sakārtoti, lai izvairītos no liekiem soļiem: vispirms domēna pārcelšana, tad lapu pāradresācijas, tad slīpsvītra, tad HTTPS un www. HTTPS un www apstrādā viens noteikums, tāpēc http://www.example.com ar vienu pāradresāciju nonāk https://example.com. Kad jūsu domēns ir zināms, lapu un slīpsvītras pāradresācijas jau ved uz galējo HTTPS adresi.

Nginx gadījumā HTTPS, www un domēna pārcelšana kļūst par atsevišķiem server blokiem ar return 301, bet lapu pāradresācijas par rewrite rindām, ko ielīmēt savā galvenajā server blokā. Tās darbojas pirms location saskaņošanas, tāpēc ir svarīgākas arī par slīpsvītras noteikumu. ? mērķa beigās neļauj Nginx pievienot veco vaicājuma virkni, kad tas nav vajadzīgs.

Veiktās pārbaudes

  • Lapa, kas pāradresē uz sevi, vai divas lapas, kas pāradresē viena uz otru (cilpa, kas beidzas ar kļūdu „pārāk daudz pāradresāciju“).
  • Ķēdes, piemēram, A → B → C: novirziet A tieši uz C, jo katrs papildu solis palēnina apmeklētājus un tērē meklētājprogrammas pārmeklēšanas resursus.
  • Viena un tā pati vecā adrese norādīta divreiz, kad darbotos tikai pirmais noteikums.
  • Mērķis, kas nav ne absolūts URL, ne ceļš, kas sākas ar /, vai http:// vai nepareiza www mērķis jūsu domēnā.
  • Slīpsvītras iestatījums, kas mērķi pāradresētu vēlreiz vai nosūtītu atpakaļ uz avotu.

Biežāk uzdotie jautājumi

Izmantot 301 vai 302?

Izmantojiet 301, ja pārcelšana ir pastāvīga: meklētājprogrammas pārnes vecās lapas signālus uz jauno un atjaunina savu indeksu. 302 izmantojiet pagaidu izmaiņām, piemēram, apkopei vai īsai kampaņai. Pārlūkprogrammas 301 pāradresācijas saglabā kešatmiņā, tāpēc vispirms pārbaudiet ar 302.

Kur ievietot .htaccess failu?

Vietnes saknes mapē (bieži public_html vai www), līdzās index.php vai index.html. Lejupielādētais fails saucas htaccess.txt; pārsauciet to par .htaccess vai ielīmējiet noteikumus esošā faila sākumā. Saglabājiet oriģināla rezerves kopiju.

Kāpēc izmantot RewriteRule, nevis Redirect 301?

Redirect rindas nāk no mod_alias un darbojas citā fāzē nekā RewriteRule. Abu sajaukšana vienā failā apgrūtina secības paredzēšanu. Izmantojot tikai mod_rewrite, visi noteikumi atrodas vienā paredzamā secībā un var saskaņot vaicājuma virknes.

Pēc HTTPS piespiešanas mana vietne rāda „pārāk daudz pāradresāciju“. Kāpēc?

Aiz slodzes balansētāja, CDN vai starpniekservera, kas pārtrauc HTTPS, Apache katru pieprasījumu redz kā parastu HTTP, tāpēc %{HTTPS} vienmēr ir izslēgts. Tādā gadījumā pārbaudiet pārsūtīto galveni, piemēram, RewriteCond %{HTTP:X-Forwarded-Proto} !https, vai ieslēdziet pāradresāciju CDN.

Vai šis rīks maina manu serveri?

Nē. Tas tikai ģenerē tekstu jūsu pārlūkprogrammā. Nekas netiek sūtīts uz serveri, un jūs paši izlemjat, kur un kā noteikumus uzstādīt.