Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 29.03.2018 uwzględniając wszystkie działy

  1. Wystopuj trocha tak możesz do koleżanek odzywać się. Nie wiemy czy Ty w seo jesteś od 10 lat i czy on 5 lat. To w zasadzie nie ma znaczenia. Za wycieczki osobiste kolejnym razem będzie urlop od forum.
    4 punkty
  2. Postanowiłem napisać mini FAQ o .htaccess specjalnie pod kątem SEO. Same najważniejsze informacje, maksimum treści żebyście potrafili przerabiać/sklejać istniejące już .htaccess na swoje potrzeby. Jeżeli coś pominąłem i będziecie mieli pytania to piszcie - rozbuduje ten temat o kolejne przykłady. Na jakiej zasadzie działają reguły RewriteCond i RewriteRule? (krótki wstęp, reszta będzie w przykładach) RewriteRule to reguły przepisywania URLi, wykonywane są jedna po drugiej, chyba, że na końcu, w nawiasie kwadratowym wpisane jest L co oznacza, że dana reguła jest ostatnia i kolejne RewriteRule nie mają zostać wykonywane. RewriteCond jest opcjonalnym wyrażeniem warunkowym, który musi być spełniony aby reguły w RewriteRule zostały wykonane. Wstawia się je przez RewriteRule, wyrażenia sprawdzane są jedno po drugim ze spójnikiem logicznym AND (czyli wszystkie warunku muszą zostać spełnione), chyba, że na końcu w nawiasie kwadratowym wstawimy warunek OR. Reguły RewriteCond dotyczą tylko i wyłącznie pierwszej reguły RewriteRule wpisanej za nimi. Jak przekierować domenę, przy wejściach bez WWW na format www.domen.tld? # reguła testująca - jeżeli domena nie ([i]![/i]) zaczyna się ([i]^[/i]) od www ([NC] oznacza niewrażliwość na małe/duże litery) RewriteCond %{HTTP_HOST} !^www. [NC] # reguła przepisująca, wykonywana tylko kiedy warunek reguły testującej (RewriteCond) jest spełniony (w [] L oznacza ostatnią regułę, R=301 oznacza przekierowanie 301) RewriteRule ^(.*)$ https://www.domena.tld/$1 [L,R=301] Jak przekierować wejście z www.domena.tld/index.php bez parametrów na www.domena.tld? # reguła testująca - jeżeli wywołaniem jest dokładnie ciąg znaków "/index.php" i żaden znak więcej ($ oznacza koniec ciągu, ^ początek) RewriteCond %{REQUEST_URI} ^\/index.php$ # reguła testująca - sprawdza czy nie ma zapytania ?param1=1&param2=2 RewriteCond %{QUERY_STRING} ^$ # reguła przepisująca RewriteRule ^(.*)$ https://domena.tld/ [L,R=301] Jak połączyć powyższe dwa listingi, aby po wpisaniu w do przeglądarki https://domena.tld/index.php przekierowało użytkownika na https://www.domena.tld/ ? RewriteEngine on # warunek zostanie spełniony tylko przy pierwszym wywołaniu, kiedy nastąpi wejście bez www. (z https://domena.tld/index.php) RewriteCond %{HTTP_HOST} !^www. [NC] # w tym miejscu nastąpi przekierowanie na przeglądarki na https://www.domena.tld/index.php RewriteRule ^(.*)$ https://www.domena.tld/$1 [L,R=301] RewriteCond %{REQUEST_URI} ^\/index.php$ RewriteCond %{QUERY_STRING} ^$ RewriteRule ^(.*)$ https://domena.tld/ [L,R=301] Jak przekierować masowo domeny, przy wejściach bez WWW na format www.domen.tld? RewriteCond %{HTTP_HOST} !^www. [NC] # dodatkowo sprawdzam czy host nie jest adresem IP (czyli czy nie kończy się cyfrą) RewriteCond %{HTTP_HOST} ![0-9]$ [NC] # w RewriteRule można wpisać %{HTTP_HOST} zamiast konkretnej domeny RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301] Zmieniłem linkowanie na stronie. Jak przekierować konkretne stare URLe na nowe? Rozpatrzmy przypadek, kiedy użytkownik chce przejść z URLi: https://www.domena.tld/index.php?strona=1 https://www.domena.tld/index.php?strona=4 https://www.domena.tld/index.php?strona=23 na URLe: https://www.domena.tld/1/Jakis+Opis.html https://www.domena.tld/4/Nazwa+Dzialu.html https://www.domena.tld/23/Jakis+inny+opis+lub+nazwa.html # zwróć uwagę na to, że adres przekierowania jest bez pełnego URLa oraz bez przekierowania 301 (jest to przekierowanie wewnętrzne serwera, niewidocznie dla przeglądarki internetowej) RewriteRule ^([0-9])\/([^.]+)\.html$ /index.php?strona=$1 # pod $2 jest opis, można użyć też takiej konstrukcji # RewriteRule ^([0-9])\/([^.]+)\.html$ /index.php?strona=$1&opis=$2 Jeżeli chcesz połączyć ten warunek razem z poprzednimi wystarczy go dodać na samym końcu pliku .htaccess. Moje przepisywanie URLi nie działa przy RewriteRule bez podawania pełnego URLa z domeną Zaraz za RewriteEngine on dopisz: # jeżeli twój .htaccess jest w katalogu głównym domeny: RewriteBase / # jeżeli twój .htaccess jest w podkatalogu costam (https://www.domena.tld/costam) # RewriteBase /costam/ # nie zapominaj o końcowym slashu Powyższy problem ten występuje m.in. na home.pl Pełna dokumentacja: https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html [dodane] Od siebie dodam jeszcze: Mini tutorial używania mod_rewrite z życiowymi przykładami
    1 punkt
Ten Ranking jest ustawiony na Warszawa/GMT+01:00
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności