Jak zrobić przekierowanie 301 (adres z www i bez www)

Rejestrując domenę rejestrujemy adres twojadomena.pl, jednak domyślnie w internecie stosuje się adresy z www czyli www.twojadomena.pl i zawsze takie adresy tworzyłem. Warto jednak pamiętać o robieniu przekierowania witryny twojedomena.pl na www.twojadomena.pl w przeciwnym razie w Google będzie to widoczne jako 2 oddzielne witryny. Spotkałem się z pytania czy na twojadomena.pl, www.twojadomena.pl mogą istnieć 2 różne witryny. Oczywiście mogą jednak nie ma to żadnego sensu.

Warto zatem już na samym początku zadać sobie pytanie czy interesuje nas promowanie witryny z www czy też bez. Jeśli jednak wcześniej o tym nie pomyśleliśmy należy zrobić przekierowanie 301, dzięki któremu automatycznie internauta zostanie przekierowany z adresu A do adresu B. Naturalnie tyczy się to nie tylko przekierowań witryn z www czy bez, ale każdego przypadku w którym chcemy skierować ruch z jednej witryny na drugą.

Co w tym wszystkim najważniejsze cyt.: “… bardzo często wykorzystywane przez webmasterów i pozycjonerów ponieważ jest poprawnie interpretowane zarówno przez przeglądarki, jak i roboty wyszukiwarek internetowych takich jak Google.” (źródło eit-centrum.waw.pl)

Przekierowanie 301 na nowy adres
Jeśli serwer obsługuje plik .htaccess do katalogu głównego na serwerze należy wgrać taki plik z następującą zawartością:
RewriteEngine On
RewriteRule ^(.*)$ http://www.nowadomena.pl/$1 [R=301,L]

Przekierowanie z www na bez www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^twojadomena.pl [NC] RewriteRule ^(.*)$ http://twojadomena.pl%{REQUEST_URI} [R=301,L]

Przekierowanie bez www na wersję z www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.twojadomena.pl [NC] RewriteRule ^(.*)$ http://www.twojadomena.pl%{REQUEST_URI} [R=301,L]

W przypadku nie obsługiwania pliku .htaccess przez serwer można to zrobić też w php, html czy javascript jednak najlepsze i najmniej szkodliwe jest użycie pliku .htaccess

Więcej informacji na temat optymalizacji stron, dzięki której Twoja strona trafi do Top10 na wiele fraz kluczowych znajdziesz w moim szkoleniu “Opti Seo One”.

Jeśli ten artykuł pomógł Ci, masz co do niego jakieś wątpliwości lub pytania “Zostaw komentarz”, a na pewno na niego odpowiem.
GD Star Rating
a WordPress rating system
Jak zrobić przekierowanie 301 (adres z www i bez www), 4.6 out of 5 based on 30 ratings

o autorze

Slawomir Gdak

Od 2009 prowadzi owego seo bloga i dzieli się swoją wiedzą z zakresu seo.

Autor publikacji/produktów z zakresu seo m.in.: znanych list katalogów i profili, ebooków, szkoleń, artykułów w miesięczniku SEMspecialist.
Gościnnie trener w Mieście Szkoleń oraz na Search Marketing Week.

41 komentarzy

napisz komentarz
  • cyt. Cezzy.pl: “Przekierowanie 301, inaczej permanentne, to stałe przekierowanie zarówno użytkowników, jak i robotów, na nowy adres. Powoduje, że dana domena zostanie wyindeksowana z wyszukiwarek, a cała jej moc, backlinki i PR przechodzi na nową domenę.”

  • a jak to zrobić w .hta jak mamy ustawione ladne linki w wordpress?
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    kombinowalem z roznie i nie dziala

  • Dzięki za ten artykuł. Ja miałam taką sytuację:
    1. witryna podstawowa w domenie webfaces.pl
    2. blog na WordPressie w podkatalogu, czyli webfaces.pl/blog

    W WP przekierowania działało automatycznie, zgodnie z tym, co napisał wyżej Szymon. W domenie podstawowej o problemie zupełnie zapomniałam, przez co funkcjonowała ona zarówno z www jak i bez www. Skorzystałam więc z kodu, który podałeś w punkcie "Przekierowanie z www na bez www", wrzuciłam plik .htaccess na serwer i efekt był natychmiastowy.

    W tej chwili zarówno strona w domenie głównej jak i blog na WordPressie w podkatalogu działają zgodnie – bez www.

    Dzięki za ten artykuł. Jasno i rzeczowo, z gotowymi przykładami.

    P.S. Jak zrobiłeś, że do tego artykułu można subskrybować do wyboru: albo wszystkie komentarze albo tylko odpowiedzi do danego komentarza? Jakiś plugin? Jaki?

      • Dzięki za informację.

        Subskrybowałam sobie Twój kurs pozycjonowania. Bardzo mi się podoba, również fakt, że jest podzielony na części, które przychodzą na maila w odstępach czasowych. Taki kawał wiedzy, do przetrawienia na jeden raz, to byłby przesyt, a tak, na taką pojedynczą porcję zawsze znajdzie się czas i chęci do przestudiowania, a potem również do "ułożenia się w głowie" przed kolejną lekcją. Bardzo dobrze jest to zrobione. Wielki ukłon również i za to.

  • mam taki problem
    Mam stronę załóżmy domena.pl
    dlaczego muszę wpisywać www przed nazwą np http://www.domena.pl bo domena.pl przerzuca mnie na stronę dostawcy ??

    Dodawałem te skrypty co są na stronie podane i nic nie zadziałało tak jak powinno.
    Co jest nie tak ?

    Gdzie robie błąd?

    robiłem zmiany w .htaccess. W koncu zostawiłem go pustego a na stronie sa nadal dziwne rzeczy. Pomimo czyszczenia histori przegadania.
    Widze ze cos zupelnie siadło.

    Proszę o pomoc

  • Ha udało się przekierować po zmianie hostingu zmienił mi się adres na bez www, ale dzięki Twojemu blogowi dałem rade:)
    Dzięki i pozdrawiam

  • Podepne sie pod temat
    1. witryna podstawowa w domenie http://www.sluzenko.com
    2. blog na WordPressie w podkatalogu, http://sluzenko.com

    Chciałbym by blog działał jak obecnie bez przedrostka www (mam plik htaccess w katalogu bloga – działa prawidłowo), ale chciałbym by główna strona http://www.sluzenko.com działała z przedrostkiem. Obecnie strona główna działa z www i bez www. próbowałem wrzucić htaccess do głównego katalogu ale wtedy blog przestawał mi działać pokazując komunikat "błąd logowania".

  • A jak przekierować lub by pokazywało to samo a nie wywalało bląd 404

    np.

    z domena.pl/maszyny/
    na domena.pl/maszyny

    czyli bez slasha

    chodzi o to by zrobić albo by po "/" i bez "/" było to samo lub
    zmieniało z bez "/" na z "/"

  • Witam,
    mam prosty problem a nie mogę sobie z nim poradzić.
    Proszę o pomoc.
    Chciałbym zrobić przekierowanie 301 z adresu:
    domenaxyz.pl/pl/n/2
    na adres:
    domenaxyz.pl/nowy-tytul-strony
    Będę wdzięczny za podanie konkretnego wpisu do pliku .htaccess.
    Dziękuję.

    Trochę mnie wstyd ale siedzę już nad tym problemem dłuższy czas
    przewertowałem setki przykładów
    i dalej nie wiem jak działa RewriteRule (nie potrafię tego zrozumieć)
    próbuję:
    RewriteRule ^pl/n/2$ http://domenaxyz.pl/nowy-tytul-strony [R=302, L]
    ale nic z tego
    Jeszcze raz proszę o pomoc

  • Witam
    Zastosowalem przekierowanie Twoim sposobem, ale nie okazał się dobry.
    Tzn. ładnie przekierowuje strony z www na te bez www
    ale mam forum jako subdomena forum.mojadomena.pl
    przy próbie wejścia na forum automatycznie przekierowuje na mojadomena.pl
    Jest na to jakieś rozwiązanie?

  • To przekierowanie dobrze przekierowuje strony z www na te bez www
    Jednak jest pewien problem
    Jesli mam forum jako subdomena, czyli: forum.mojadomena.pl
    to po wejściu w to forum też przekierowuje na mojadomena.pl
    Jak rozwiazać taki przypadek?

  • Dzieki, nigdy sobie tego nie zapisuje na dysku tylko wpisuje w google i wchodze na Twoj blog 🙂

  • Witam, wykupiłem nową domenę i zrobiłem przekierowanie 301. Wszystko działa jak należy. Domena stara natychmiast przekierowuje na nową. Jeśli ktoś byłby jednak uprzejmy odpowiedzieć mi na pytanie:

    Czy muszę usuwać stare pliki strony? Czy w ogóle to robić czy stare pliku muszą już na zawsze istnieć i muszę przedłuzac dwie domeny?

    Czy wuszukiwarka google zastąpi w wynikach wyszukiwania starą domenę na nową?

  • Witam!
    Dzięki za szczegółowy opis przekierowania. Mimo tak dokładnych wyjaśnień i przykładów nie działa mi przekierowanie z fottech.com.pl na http://www.fottech.com.pl (Strona jako taka się wyświetla, ale nie pojawia sie w FF przedrostek www.
    Kod w moim pliku .htaccess wygląda tak:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ! http://www.fottech.com.pl [NC]
    RewriteRule ^(.*)$ http://www.fottech.com.pl%{REQUEST_URI} [R=301,L]

    Plik umieszczam w katalogu głownym serwera, tam gdzie index.html, Plik .htaccess mam również w katalogu cgi-bin i też go zapisałem w ten sposób.

  • Panie Sławku….otóż…już któryś raz Pański blog ratuje mi d…. No wiadomo co mi ratuje. Dzięki jak nie wiem co!!! 🙂

  • Ok, musze to spróbować, mam zainstalowane WordPress, i teraz jest stara strona ciągle na www, aby znaleźć nowa strona to bez www.

  • Cześć, ja mam dalej problem, nowy serwis zbudowany na WP i stary. Ze starego chę przekierować wypozycjonowane strony. Gdzie utworzyć plik z kodem np:
    <?php
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://www.example.org/&#039;);
    header('Connection: close');
    exit();
    ?>
    W osobnym dokumencie .php i wgrać do Kat. Nowej Strony WP czy do Kat. Starej Strony?

    Bardzo dziękuję za wskazówkę, czytam już parę godzin i przepisów jest wiele natomiast nadal nie doczytałam gdzie ten kod wkleić na nową czy starą stronę Mam obydwie na serwerze.

    Adesy mi się pozmieniały 🙂 siłą rzeczy 🙂

  • Posiadam stronkę na płatnym hostingu jednak z darmową domeną w republice.pl
    Chciałem domenę przekierować z bez www na z www jednak plik .htaccess nie działa. Próbowałem już wszystkich chyba kombinacji. Jak myślicie jest w ogóle sposób aby przekierować darmową domenę ?

  • jak przekierować adres bez www na z www gdy plik .htaccess ma taką postać:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    ?

    Z góry dzięki za pomoc

  • Witam, troszkę odświeżę zapytanie dotyczące poprawnego przekierowania przez .htaccess
    Dotyczy strony internetowej https://www.eintro.pl
    Czy ktoś znajdzie lepsze rozwiązanie niż poniżej? *(na niektórych przeglądarkach pokazuje błąd!)

    SetOutputFilter DEFLATE

    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    RewriteEngine on

    # Redirect to http://www.eintro.pl
    RewriteBase /
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteRule ^index\.html$ / [R=301,L]

    # Same for HTTPS:
    RewriteCond %{HTTPS} !=on
    #RewriteCond %{HTTPS} on
    RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC]
    #RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    #RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # Compress text, html, javascript, css, xml
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript

    # Ensure all directory URLs have a trailing slash
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !\/$
    RewriteCond %{REQUEST_URI} !\/[^\/]*\.[^\/]+$
    RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}/ [L,R=301]
    RewriteRule ^([a-z0-9-_]+),([a-z0-9-_]+).html$ $1.php?id=$2 [L,NC,NS]
    # Same for HTTPS:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !\/$
    RewriteCond %{REQUEST_URI} !\/[^\/]*\.[^\/]+$
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}/ [L,R=301]

    # Redirect to another domain eintro.pl.
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} !^(www\.)?eintro\.pl$ [NC]
    RewriteRule .* http://eintro.pl%{REQUEST_URI} [R=301,L]

    # Same for HTTPS:
    RewriteCond %{HTTPS} on
    RewriteCond %{HTTP_HOST} ^(www\.)?eintro.pl$
    RewriteRule ^(.*)$ https://www.eintro.pl/$1 [R=301,L]

    #RewriteCond %{HTTP_HOST} !^(www\.)?eintro\.pl$ [NC]
    #RewriteRule .* https://eintro.pl%{REQUEST_URI} [R=301,L]

    ErrorDocument 401 “STRONA ZABEZPIECZONA HASLEM”
    ErrorDocument 403 https://www.eintro.pl
    ErrorDocument 404 https://www.eintro.pl

    Header set cache-control: public
    ExpiresActive on
    ExpiresDefault “access plus 1 month”
    ExpiresByType text/html “access plus 1 hour”
    ExpiresByType application/rss+xml “access plus 1 hour”
    ExpiresByType image/png “access plus 1 month”
    ExpiresByType image/jpg “access plus 1 month”
    ExpiresByType image/jpeg “access plus 1 month”
    ExpiresByType video/ogg “access plus 1 month”
    ExpiresByType audio/ogg “access plus 1 month”
    ExpiresByType video/mp4 “access plus 1 month”
    ExpiresByType image/x-icon “access plus 1 year”
    ExpiresByType font/ttf “access plus 1 year”
    ExpiresByType image/svg+xml “access plus 1 year”

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Wyrażam zgodę na przetwarzanie danych osobowych przez firmę GDAQ.PL Multimedia Sławomir Gdak. Zgoda może zostać anulowana w dowolnym momencie. Szczegółowe informacje dotyczące danych osobowych są umieszczone na stronie polityki prywatności.

Wszelkie prawa zastrzeżone. Zabrania się wykorzystywania jakichkolwiek treści bez zgody autora.