Walka z falą błędów 404

Witajcie,

jak może część z Was pamięta, przy ostatniej migracji zmieniłem lekko format linków prowadzących do wpisów. Uważałem, że pozbycie się ID notek z adresów będzie dobrym posunięciem, bo wtedy linki staną się zwyczajnie prostsze. Założenie dobre, a wyszło… jak zwykle ;)

Można mi się dziwić czemu nie zadbałem o przekierowania ze starych adresów na nowe - po prostu sądziłem, że Google znacznie szybciej zreindeksuje strony. Tak czy siak problem narastał, zainstalowałem wtyczkę 404 redirected by Weberz. Za jej pomocą ustawiłem kilkadziesiąt ręcznych przekierowań 301 na nowe adresy, sama wtyczka utworzyła ich ponad 800. Mimo wszystko Centrum dla Webmasterów od Google nadal informowało o rosnącej liczbie błędów 404 na mojej stronie. Czymś co najbardziej mnie martwiło, jest to, że liczba błędów 404 wykazywanych przez Google z każdym dniem rośnie (aktualnie koło 480).

W pewnym momencie nowe przekierowania dodawane w wyżej wspomnianej wtyczce po prostu przestały mi działać. Dlatego poszukałem innych rozwiązań - dodatkowo doinstalowałem  (starej nie usuwałem, ze względu na te ponad 800 już ustawionych redirectów)  wtyczkę Redirection.

W końcu stwierdziłem, że ręczne dodawanie kolejnych przekierowań mija się z celem i postanowiłem zautomatyzować proces. Napisałem na tą okoliczność mały skrypcik, który przedstawiam poniżej.

<?php
$mysqli = new mysqli('serwer', 'user', 'haselko', 'baza');

$result = $mysqli -> query("SELECT ID, post_name FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post'");

$i = 1;
while ($row = $result -> fetch_array()) {
	$mysqli -> query("INSERT INTO wp_redirection_items SET url = '/".$row['ID']."/".$row['post_name']."/', action_data = '/".$row['post_name']."/', regex = 0, position = $i, group_id = 1, status = 'enabled', action_type = 'url', action_code = 301, match_type = 'url';");
	$mysqli -> query("INSERT INTO wp_redirection_items SET url = '/".$row['ID']."/".$row['post_name']."', action_data = '/".$row['post_name']."/', regex = 0, position = $i, group_id = 1, status = 'enabled', action_type = 'url', action_code = 301, match_type = 'url';");
	$mysqli -> query("INSERT INTO wp_redirection_items SET url = '/".$row['ID']."/', action_data = '/".$row['post_name']."/', regex = 0, position = $i, group_id = 1, status = 'enabled', action_type = 'url', action_code = 301, match_type = 'url';");
	$mysqli -> query("INSERT INTO wp_redirection_items SET url = '/".$row['ID']."', action_data = '/".$row['post_name']."/', regex = 0, position = $i, group_id = 1, status = 'enabled', action_type = 'url', action_code = 301, match_type = 'url';");
	++$i;
}

Skrypt dodaje rekordy do tabeli wyżej wspomnianego pluginu - we wszystkich formatach, w jakich mogą być spotykane w na moim blogu lub indeksach Google. W ten sposób z automatu dodałem 456 przekierowań (liczba wpisów * 4 możliwe warianty).

Mam nadzieję, że to rozwiąże problem i liczba stron z błędami 404 zacznie spadać. W najbliższym czasie podzielę się wynikami.

MobsControl - okiełznaj endermany, creepery i zombie w Minecraftcie

Dzisiaj chciałbym Wam zaprezentować kolejną moją "produkcję", która znalazła się na stronie w dziale portfolio.

MobsControl jest bardzo prostą wtyczką przeznaczoną dla serwera Bukkit, który umożliwia grę multiplayer w Minecrafta. Wtyczka blokuje kilka z zachowań mobów (potworów), są to:

  • Creepery eksplodują zadając normalne obrażenia, ale nie niszczą żadnych bloków. W ten sposób unikniesz strat na mapie w ich wyniku.
  • Endermany nie mogą podnosić żadnych bloków. Skutecznie blokuje dewastację mapy, endermany będą nadal występować i atakować gracza, po prostu nie będą nic podnosić.
  • Zombie nie mogą wyłamywać drzwi. Uwaga: zombie będą nadal podążać w kierunku drzwi i uderzać w nie. Plugin blokuje jedynie możliwość ich wyłamania. Wynika to z faktu, że w obecnej wersji API nie ma możliwości wyłączenia ataków na drzwi, wymaga to przekompilowania Bukkita.

Ostatnia wersja na jakiej testowałem wtyczkę, to Bukkit 1.2.5, jednak powinna spokojnie działać z nowszymi :) Wtyczki można bezproblemowo używać na serwerach Tekkit.

Więcej informacji i download wtyczki tutaj.