Turlał goryl po Urlach kolorowe korale, rudy góral kartofle tarł na tarce wytrwale, gdy spotkali się w Urlach góral tarł, goryl turlał chociaż sensu nie było w tym wcale.
Powyższy łamaniec językowy faktycznie nie ma żadnego sensu, ale opowiada o Urlach, którymi się bawiłem całkiem niedawno. Dziś krótka notka - a nuż komuś się kiedyś przyda?
Problem:
- Przeniosłem blog z adresu http://xpil.eu/blog/ pod adres http://xpil.eu/
- Kiedyś każdy wpis na tym blogu miał adres w postaci http://xpil.eu/blog/YYYY/MM/DD/tytul-wpisu/ - ale teraz jest już "tylko" http://xpil.eu/tytul-wpisu/ (usunąłem datę z adresu, bo lubię krótkie adresy)
- W związku z powyższym w Sieci istnieje kilka linków do niektórych moich artykułów, używających "starej" struktury adresu (a więc zawierają "/blog/" i/lub "/YYYY/MM/DD")
- Żeby było śmieszniej (ale jakoś nie jest), zainstalowałem sobie również certyfikat SSL, a więc mam teraz adres zaczynający się od https (zamiast niegdysiejszego htttp), co też trzeba uwzględnić.
W niektórych przypadkach udało mi się skontaktować z właścicielem strony i poprosić go o poprawienie adresów. Ale te przypadki mogę policzyć na palcach rąk ślepego, pijanego pilarza. A co z resztą?
Rozwiązanie:
Apacz obsługuje przekierowania URL, które są narzędziem całkiem potężnym. Używane nierozsądnie mogą doprowadzić do ostrej niewydolności serwera WWW, a w najgorszym przypadku nawet do jego zawieszenia się. Jednak używane z głową... Zobaczcie:
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.+)/$ http://xpil.eu/$4
Powyższe przekierowanie wyszukuje w adresie ciąg znaków postaci /{cztery-cyfry}/{dwie-cyfry}/{dwie-cyfry}/{coś} i zamienia go na http://xpil.eu/{coś}. Dzięki temu pozbywamy się nieszczęsnego /YYYY/MM/DD z adresu
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Tu z kolei mówimy Apaczowi, że jeżeli adres nie zaczyna się od https, zamieniamy adres na taki z https, przekierowujemy na ten nowy adres i zaprzestajemy dalszego przetwarzania reguł.
redirect 301 /blog/ http://xpil.eu/
Tu z kolei przerzucamy z podkatalogu /blog/ do katalogu głównego.
Nie do końca jeszcze rozumiem jak te wszystkie przekierowania działają (dlatego większość moich własnych prób modyfikacji pliku .htaccess kończy się zawieszeniem Apacza), na szczęście istnieją portale typu StackExchange, na których są gotowce do skopiowania i używania 😉
Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]
Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.