Przekierowanie 301

22 kwietnia 2008

Zdaję sobie sprawę, że informacje o przekierowaniu 301 to nic nowego. Ale nadal niektórzy szukają odpowiedzi na pytanie "Co to jest?" więc zamieszczam krótką ściągawkę.

"Przekierowanie 301: Moved Permanently" przydaje się do pozycjonowania stron Internetowych. Służy ono do przekierowania z jednego adresu na drugi. Niby nic nadzwyczajnego ale... To konkretne przekierowanie ma pewne zalety. Otóż przenosi ono "siłę" jednego adresu na drugi. Czyli przekazywany jest PageRank adresu, jego pozycja w wyszukiwarkach na wybrane frazy itd.

Do czego nam się to może przydać? Opiszę najpopularniejsze zastosowanie.

Otóż przyjęło się, że przed adresem strony Internetowej stawiamy przedrostek "www". Tak naprawdę jednak nie jest on nam do niczego potrzebny. W efekcie jego zastosowania nasza strona istnieje pod dwoma adresami np. tarnaski.eu i www.tarnaski.eu. Ale tylko od woli administratora zależy czy po wpisaniu obu tych adresów wyświetli się ta sama strona czy będą to dwie, całkowicie różne witryny. Z tego powodu google, chcąc niechcąc, musi traktować adresy z przedrostkiem "www" i bez niego jako dwa różne adresy. W konsekwencji siła naszej domeny jest podzielona na dwie części.

Żeby uporządkować sytuację korzysta się z przekierowania 301. Najpierw trzeba zdecydować, który adres chcemy pozycjonować. Teoretycznie nie ma większej różnicy.

Z jednej strony niektórzy nawołują do bojkotu przedrostka "www" bo to przeżytek od którego powinno się odchodzić.

Z drugiej strony podawanie "www" przed adresem jest już bardzo mocno zakorzenione i wiele przypadkowych linków do naszych stron, które ludzie umieszczają na swoich stronach, blogach itp. jest właśnie w postaci www.tarnaski.eu. No i niestety niektóre katalogi stron oraz systemy wymiany linków wymagają przedrostka.

Ale wybór należy do Ciebie :) Ja osobiście ostatnio pozycjonuję domeny z przedrostkiem ale chociażby osada.pl pozycjonowałem bez przedrostka i nie robiło mi to różnicy. Niech każdy sam zdecyduje.

Jak dokonać przekierowania? Najprościej wsadzić odpowiednią regułkę do pliku .htaccess.

Przekierowanie z "bez www" na "www":

CODE:
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^tarnaski.eu(.*) [NC]
  3. RewriteRule ^(.*)$ http://www.tarnaski.eu/$1 [R=301,L]

Przekierowanie z "www" na "bez www":

CODE:
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^www.tarnaski.eu(.*) [NC]
  3. RewriteRule ^(.*)$ http://tarnaski.eu/$1 [R=301,L]

Oczywiście trzeba wstawić adres swojej strony zamiast "tarnaski.eu".

Ale to nie jedyne zastosowanie przekierowania 301. W końcu możemy przekierowywać z dowolnego adresu na drugi dowolny adres, wcale nie muszą one być w tej samej domenie. A więc przekierowanie to idealnie nadaje się gdy zmieniamy adres naszej strony. Wystarczy zrobić 301 z jednej domeny na drugą. Poniższe przekierowanie przekieruje wszystko na nowy adres:

CODE:
  1. RewriteEngine On
  2. RewriteRule ^(.*)$ http://www.tarnaski.eu/$1 [R=301,L]

Bywa też tak, że zmieniamy na swojej stronie adresowanie. Linki, które kiedyś kierowały do konkretnych podstron i są już zaindeksowane w wyszukiwarkach nagle zaczynają zwracać błąd 404. Wtedy także jak najbardziej zaleca się zastosować przekierowanie 301 i przekierować stare adresy na nowe. Oto takie przykładowe przekierowanie, działa ono na nasztomaszow.pl:

CODE:
  1. RewriteEngine On
  2. RewriteRule ^kanaly-rss/?$ /kanaly-informacyjne/ [R=301,L]

Wcześniej podstrona była nazwana "Kanały RSS" z racji tego, że były tam tylko odnośniki i informacje o RSS. Jednak z czasem dodałem również kanały Atom i należało zmienić adres. Teraz po wejściu na pierwszy adres zostajemy automatycznie przekierowani na drugi.

Zwróćcie uwagę również na to co się dzieje gdy wejdziecie na taki adres: nasztomaszow.pl/kanaly-rss/. Nie tylko zmieni się adres z "kanaly-rss" na "kanaly-informacyjne" ale również zostanie dodany przedrostek "www" zgodnie z tym co pisałem wcześniej.

W plikach .htaccess możemy używać wyrażeń regularnych. Jest to czasami bardzo pomocne a nawet konieczne.

Znowu posłużę się przykładem z nasztomaszow.pl. W pewnym momencie postanowiłem przenieść wszystkie zdjęcia do artykułów z jednego katalogu do drugiego. Jednak zdjęć jest setki a nawet tysiące, nie sposób dla każdego wpisać przekierowania do .htaccess. Zrobiłem więc tak:

CODE:
  1. RewriteEngine On
  2. RewriteRule ^zdjecia/newsy/duze/([0-9]{1,}).jpg$ dane/strony/duze/$1.jpg [R=301,L]

I gotowe. Nazwy plików to liczby więc przekierowanie było proste. Od tej chwili stare adresy przestają być aktualne ale jeżeli ktoś jeszcze natrafi na stronę gdzie będzie podany stary adres do zdjęcia to wyświetli mu się ono ponieważ zadziała przekierowanie.

Na koniec dodam, że wcale nie musimy korzystać z dobrodziejstw Apacha (czyli z .htaccess). Z przekierowaniem można sobie poradzić w dowolnym języku programowania, chociażby w PHP.

Przekierowanie z "bez www" na "www":

PHP:
  1. <?php
  2. if(substr($_SERVER['HTTP_HOST'], 0, 3)!='www')
  3. {
  4. header("HTTP/1.1 301 Moved Permanently");
  5. header("Location: http://www.tarnaski.eu".$_SERVER['REQUEST_URI']);
  6. header("Connection: close");
  7. }
  8. ?>

Przekierowanie z "www" na "bez www":

PHP:
  1. <?php
  2. if(substr($_SERVER['HTTP_HOST'], 0, 3)=='www')
  3. {
  4. header("HTTP/1.1 301 Moved Permanently");
  5. header("Location: http://tarnaski.eu".$_SERVER['REQUEST_URI']);
  6. header("Connection: close");
  7. }
  8. ?>

Przekierowanie na nowy adres:

PHP:
  1. <?php
  2. header("HTTP/1.1 301 Moved Permanently");
  3. header("Location: http://www.tarnaski.eu".$_SERVER['REQUEST_URI']);
  4. header("Connection: close");
  5. ?>

I to tyle :) Mam nadzieję, że rozjaśniłem niektórym sytuację i będziecie powszechnie stosować przekierowanie 301 ponieważ daje ono wymierne korzyści. Zachęcam również do zapoznania się z możliwościami jakie drzemią w poleceniach zapisywanych w .htaccess :)

PS
No tak... Ale możesz przecież nie wiedzieć co to .htaccess :P Jest to zwykły plik tekstowy. Zapisujesz w nim odpowiednie polecenia, nadajesz plikowi nazwę ".htaccess" i wgrywasz na serwer. Komendy te będą działać dla katalogu w którym jest plik oraz dla katalogów dalej zagłębionych. Przy przekierowaniu 301 przeważnie .htaccess umieszczamy w tym katalogu w którym jest plik index. O .htaccess można znaleźć sporo informacji w Internecie. Ja szczególnie polecam zapoznać się z modułem mod_rewrite, który ma ogromne możliwości i to głównie z niego będziecie korzystać przy pracy z .htaccess.

Na koniec dodam, że komendę "RewriteEngine On" umieszczamy tylko raz w .htaccess. Zamieściłem ją w każdym z powyższych przykładów ponieważ jest wymagana jeżeli przykłady będą traktowane osobno. Ale nic nie stoi na przeszkodzie aby do jednego .htaccess wsadzić kilka, kilkanaście a nawet kilkadziesiąt przekierowań czy innych komend. Zalecam jednak w tym miejscu umiar, każda nowa reguła to więcej pracy dla Apacha.

Uwaga! (07.06.2008)
Dodałem jeszcze jedną krótką notkę na temat przekierowania 301 - link tutaj. Znajduje się tam wskazówka jakich reguł użyć jeżeli mamy dwie domeny kierujące na te same pliki i chcemy jedną przekierować na drugą.

Uwaga! (30.01.2009)
Jeżeli interesuje Cię przekierowanie w .htaccess z "bez www" na "z www" lub odwrotnie to nie pożałujesz jeżeli przeczytasz mój wpis na temat uniwersalnego przekierowania 301.

 Dodaj komentarz

133 odpowiedzi dla tego wpisu

  1. jelcz napisał:

    Konkretnie i na temat,
    wielkie dzięki, przydało się :)

  2. Magda napisał:

    ja również serdecznie dziekuję ;)

  3. Anonim napisał:

    :o :o

  4. ZZ napisał:

    Wielkie DZIEKI za ten artykuł i pomoc we wdrożeniu go w życie:) POZDRAWIAM!!

  5. hmmm napisał:

    a jak zrobic przekierowanie z
    http://www.ezakopane.pl/szukaj.....pensjonaty
    na
    http://www.ezakopane.pl/szukaj.....pensjonaty
    dzieki za pomoc

  6. MariuszT napisał:

    Przykro mi, kombinowałem na różne sposoby ale nic mi nie wyszło…. Trochę osób ma ten sam problem ale rozwiązania nie znalazłem. Może Ty będziesz miał więcej szczęścia http://www.google.pl/search?hl.....j&lr=

    Jeżeli nie wyjdzie przez .htaccess to próbuj w PHP, tam będzie to banalne ;)

  7. Gość napisał:

    też mi sie przydalo :)

  8. Gość napisał:

    jak przekierować stronę http://mbankkonto.blogspot.com na nowy adres http://bankkonto.blogspot.com? pozdrawiam

  9. MariuszT napisał:

    Nie przekierujesz stron umieszczonych na blogspot.com, nie ma tam takiej możliwości.

  10. Krzysztof napisał:

    Super artykuł,
    widzę, że znasz temat. Mam problem z pewną domeną. Otóż, posiada ona filtr. Przed otrzymaniem filtra (zostałem przez google poinformowany, że został on nałożony, oraz zostały wymienione powoty).
    Zapytanie:
    Czy jak zrobię przekierowanie domeny, czy pozycje sprzed nałożenia filtra ze starej domeny zostaną przeniesione, na nową. Domena miała bardzo wysokie pozycje przez około rok czasu, ale przez moją głupotę dostała filtr.
    Prosze o odpowiedź.
    Krzysztof

  11. MariuszT napisał:

    Z tego co wiem to przekierowanie nie przenosi filtrów a więc istnieje szansa, że Twoja druga domena chociaż zbliży się do pozycji pierwszej domeny sprzed filtra. Ale pewności nie ma i nie słuchaj nikogo kto Ci powie, że „na pewno” będzie tak lub tak.

  12. Krzysztof napisał:

    Witam,
    dzięki za info. Ma być to duży portal, więc też duże obawy. Szkoda stracić domenę. A przy okazji zapytam o coś takiego. Czy można zrobić kilka przekierowań na daną domenę? Załużmy mam domenę, na której chcę zbudować serwis o Londynie. I mam również inne domeny, w których nazwie są słowa Londyn, Anglia, Wielka Brytania. Są to domeny z PR2, 3, 4. Jaki będzie efekt, jeśli wykonam przekierowanie z tych 3 domen na nową (nie ma żadnej historii – jest zaledwie zaindeksowana). A domeny z których bym robił przekierowanie maja przynajmniej po 3 lata?
    Pozdrawiam
    Krzysztof

  13. MariuszT napisał:

    Można robić przekierowań ile się chce. Jednak efekt moim zdaniem będzie mizerny. Na Twoim miejscu postawiłbym pod tymi domenami niewielkie tematyczne strony, które będą linkowały do tego najważniejszego portalu. Takie zaplecze na pewno lepiej wpłynie na pozycję Twoich stron niż zwykłe przekierowania.

  14. Fan11 napisał:

    Jesteś GOŚĆ! Takiej konkretnej informacji potrzebowałem będę przekierowywał bez www na www.
    Dzięki pozdro

  15. Fan11 napisał:

    Obawiam się, że u mnie to nie działało :( . Dopiero jak zastosowałem poniższy kod strona wyświetla poprawnie :D .
    RewriteEngine On
    Options FollowSymLinks
    RewriteCond %{HTTP_HOST} ^szynszyla.waw.pl$
    RewriteRule ^(.*)$ http://www.szynszyla.waw.pl/$1 [R=301,L]

  16. MariuszT napisał:

    Nie mam pojęcia co Ci nie działało ale ważne, że sobie poradziłeś :)

  17. Fan11 napisał:

    No faktycznie, też nie wiem sprawdzałem kilkanaście razy i jakieś krzaki były, teraz chciałem odtworzyć, żeby skopiować opis błędu i działa. Czary ? :[
    Zwracam honor jesteś genialny !!

  18. MariuszT napisał:

    Hehe spokojnie z tą genialnością :) Może po prostu podczas tamtej próby coś nie tak się wysłało na serwer lub były inne drobne problemy. To się zdarza. Najważniejsze, że działa. To jest dobry sposób bo przekierowywuje nie tylko stronę główną ale również wszystkie podstrony.

  19. Fan11 napisał:

    „Genialny człowieku” :) mam nowy problem :(
    A jak zrobić w przypadku strony HTML jeżeli chcę żeby po naciśnięciu linka szynszyla.waw.pl/forum.html przekierowało mnie automatycznie na
    forum.szynszyla.waw.pl/

  20. MariuszT napisał:

    Coś w ten deseń (nie testowałem):

    RewriteRule ^forum.html?$ http://www.forum.szynszyla.waw.pl [R=301,L]

  21. Fan11 napisał:

    I co może nie jesteś genialny !! ? Jasne, że działa. Wielkie dzięki ;)

  22. szymon napisał:

    Witam
    mam pytanie: posiadam glowna domene aaa.pl i pod ta domena znajduje sie moja glowna strona ktora mnie interesuje. Dodatkowo mam wykupione 4 domeny (nazwa tematycznie nawiazuje do mojej glownej) i chcialbym sie dowiedziec jak korzystnie je wykorzystac dla mojej strony – czy mozna jakos wykorzystac fakt posiadania wielu domen? Czy jest to tylko zabieg wyprzedzajacy i blokujacy konkurencje i po wykupieniu lepiej nic z nimi nie robic?

  23. MariuszT napisał:

    Posiadanie wielu domen, samo w sobie, nie daje nam nic z punktu widzenia SEO. Dla wyszukiwarek liczy się jakość a nie ilość. Te domeny nie przedstawiają żadnej wartości dla google i innych, nie były pozycjonowane, nie mają żadnych linków przychodzących itd.

    Ja bym radził zrobić kilka małych tematycznych stronek i zamieścić je pod tymi adresami, pamiętając o dobrym podlinkowaniu serwisu głównego. Następnie lekko je pozycjonuj.

  24. Krzysztof napisał:

    Witam, mam dwie strony tematyczne nawiązujące do miasta Londyn. Pierwsza ma z 5 lat, cały czas jest pozycjonowana, ma 5 subdomen. Jednak znalazłem inną domenę, która jest nowiutka, jednak lepsza. Serwis nie jest do końca skończony, i dlatego chcę oddawać go partiami.
    Mam pytanie: czy mogę np. przekierowywać serwis partiami?, Tzn. np dzisiaj przekierowuję subdomenę ogłoszenia ze starego serwisu na nowy, potem za dwa miesiące kolejną subdomenę, np. wiadomości.
    Ponadto, czy jak przekierowuję adresy, czy treści zawarte na starej subdomenie muszą pokrywać z treściami na nowej? Bo słyszałem, że tak musi być.
    Proszę o odpowiedź.
    Krzysztof

  25. MariuszT napisał:

    Możesz robić przekierowania tylko części serwisu. Nie powinno być z tym problemu. Część teraz, część za tydzień, kolejna część za miesiąc. Co prawda ja bym się mocno zastanowił czy w ogóle warto przenosić serwis pod nowy adres ale nie znam szczegółów ;) Każdy tu musi decydować sam.

    Dobrze byłoby gdyby treści się pokrywały gdy robisz przekierowanie :)

  26. Anonim napisał:

    Pytanie od lamera: czy te skrypty PHP wrzuca sięw sekcji HEAD strony html czy w BODY?

  27. Anonim napisał:

    Eh, sorka, ok, już wiem, trzeba wkleić jeszcze przed znacznikiem HTML, pozdrawiam!

  28. Jano napisał:

    Witam

    Nie mogę zrobić przekierowania. Wstawiam kod w .htaccess . Otrzymuję finalnie:

    - w momencie wpisania rg-sklep.com.pl przekierowuje na http://www.rg-sklep.com.pl … ale jeśli nacisnę na jakiś odnośnik na mojej stronie nic się nie dzieje znowu zapętla do głównej… nie czaję klimatu i proszę o pomoc. Dzięki

  29. Jano napisał:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    php_flag register_globals on

    Czy jesli mam to w pliku .hatccess to mam to zmienić na powyższy kod aby mieć przekierowanie? proszę o pomoc

  30. MariuszT napisał:

    Nic nie zamieniaj, dodaj jedynie kod odpowiedzialny za interesujące Cię przekierowanie. Pamiętaj jedynie, że „RewriteEngine On” powinno występować w pliku .htaccess tylko raz zatem możesz z moich przykładów usunąć tą linijkę.

  31. Jano napisał:

    dzięki działa. wcześniej dodawałem i mi nie działało bo zapętlało tym
    RewriteEngine On

  32. Szymon napisał:

    Czesc mam takie pytanie powiedzmy ze przechwytuje domene ktora ma wypracowany site i jak zrobic przekierowania ze starych odnosnikow na nowe moje zeby nie stracic tego situ ??

    U Ciebie jest pokazane przekierowanie dla jednego kakretnego odnosnika a jak to zrobic dal powiedzmy kilku tyś ?? bo chyba nie kilka tysiecy lini w htaccess??

  33. MariuszT napisał:

    Wszystko jest napisane w tym wpisie lub ewentualnie w dwóch pozostałych wpisach o przekierowaniu 301, które są podlinkowane na dole. Wystarczy uważnie przeczytać.

  34. Jano napisał:

    Cześć!

    Jednak nie działa to jak powinno… nie wiem o co chodzi. W oscommerce wstawiam to. Po dodaniu kodu zawiecha złapała dodawanie, usuwanie i edycje produktów…

    dokładnie to był błąd tego typu:
    Warning: reset() [function.reset]: Passed variable is not an array or object in /home/rg-sklep/ftp/admin/includes/classes/object_info.php on line 17
    Warning: Variable passed to each() is not an array or object in /home/rg-sklep/ftp/admin/includes/classes/object_info.php on line 18

    Pisałem do NetArtu ale mowili że nie mają wpływu na przekierowania.

    mój początek kodu w .htacces to:
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /
    php_flag register_globals on
    Bezpośrednio za tym dodaję kod który pokazałeś jako pierwszy, oczywiście nie dodaję RewriteEngine On bo już jest.
    Pod tym kodem mam jeszcze trochę linijek tego typu:
    RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING}

    Proszę o pomoc ;(

  35. argonek napisał:

    elo mam takie pytanie posiadam stronkę nazwijmy ja http://www.costam.pl i mam dla niej zarezerwowane miejsce hostingowe teraz kupiłem nowa domenę i chce zeby zawartosc tej stronki byla wyswietlana na nowej domenie np nowastronka.pl, czyli po wpisani adresu http://www.nowastronka.pl wyswietlała sie stronka costam.pl

    ps mam stronke na az.pl

  36. MariuszT napisał:

    To nie ma nic wspólnego z przekierowaniami. Sprawdź na swoim hostingu jak tam zaparkować nową domenę i ewentualnie przekierować na odpowiedni katalog. Aby potem uniknąć content duplicate radzę ze starej domeny zrobić przekierowanie 301 na nową.

  37. Jano napisał:

    Hej może mi ktoś podpowiedzieć do postu 3 wyżej? Dalej sobie z tym nie radzę…

    po dodaniu kodu blokuje mi edycje i dodawanie produktow, nie bardzo mogę znaleźć odpowiedź w sieci.

    Pozdrawiam

  38. MariuszT napisał:

    Przykro mi ale masz mocno zakręcony ten .htaccess, poza tym nie wiadomo jak sam skrypt jest zbudowany. Ciężko tak wywróżyć o co chodzi… A zagłębiać się w czyjeś skrypty nie bardzo mam czas.

  39. Jacek napisał:

    Bardzo przydatne ! Zobaczę czy coś pomoże w SEO !

  40. Q napisał:

    W .htaccess siła drzemie :)
    Niestety też wiele osób korzysta z 301, przekierowując PR nie swojej domeny.. a potem sprzedaje linki na allegro. Nie dajcie się sprawdzajcie witryny pod kątem fakePR albo cache w googlu.
    Bardzo dobry art

  41. Bogdan napisał:

    Świetny tekst, przydał mi się bardzo.
    Mam jednak pytanie a propos przekierowań i .htaccess

    Jest forum ustawione jako subdomena. W cPanel próbuję ustawić przekierowanie z strona.pl/forum na forum.strona.pl, ale nie działa. Chodzi o to, że forum jest dostępne pod dwoma (4) różnymi adresami i chciałbym to ujednolicić. Jak zrobić takie przekierowanie za pomocą pliku .htaccess?
    Na innej stronie w DirectAdminie ustawiłem sobie przekierowanie takie jak powyżej napisałem i jest OK…

  42. MariuszT napisał:

    RewriteRule ^forum/?$ http://www.forum.strona.pl [R=301,L]

    Nie sprawdzałem czy działa ale powinno być OK :)

  43. Bogdan napisał:

    Dzięki, ale z jakiegoś powodu nie działa…

  44. MariuszT napisał:

    Musisz sam kombinować, nie mogę niestety każdemu z osobna tworzyć regułek .htaccess, kosztowałoby mnie to zbyt dużo czasu.

  45. Damian napisał:

    Witam!

    Mam takie pytanie jakie kod 301 filtrow moge zastosowac zeby moja pozycja starej strony przeszla na nowa ? I przekierowala automatycznie ..

    Bo tan mi nie dziala w .htaccess:
    _____________________________________________
    RewriteEngine On
    RewriteRule ^(.*)$ http://www.tarnaski.eu/$1 [R=301,L]
    _____________________________________________|

    Slicznie dziekuje!

  46. MariuszT napisał:

    Na temat przekierowań 301 napisałem chyba już wszystko co się da. Również wiele wskazówek znajdziesz w komentarzach. Naprawdę bardziej Ci pomóc nie mogę, przypadki w których coś z powyższych przykładów nie działa trzeba już rozpatrywać indywidualnie, sprawdzać konfigurację serwera itp.

  47. seven napisał:

    Witam.
    Chciałbym zrobić przekierowanie z http://www.adres.pl/index.php na http://www.adres.pl. Próbuję z różnymi komendami, ale jakoś mi się nie udaje. Co dokładnie muszę wpisać w .htaccess ?

    Na tego typu przekierowanie trzeba czekać czy od razu działa ?

  48. seven napisał:

    Już sobie poradziłem dzięki :)

    RewriteCond %{HTTP_HOST} ^adres.pl$ [OR]
    RewriteCond %{HTTP_HOST} ^www.adres.pl$
    RewriteRule ^index\.php\/?(.*)$ „http\:\/\/www\.adres\.pl\/$1″ [R=301,L]

  49. Ian napisał:

    dzięki stary, pomogłeś bardzo.
    przekierowanie 301 to świetna sprawa, szkoda, że wcześniej tego nie znałem.
    pozdrawiam :)

  50. Tłumacz napisał:

    Super artykuł: wytłumaczone klarownie i dokładnie.
    Dzięki

  51. a4kadiusz napisał:

    Dzięki za artykuł – pomógł.

  52. czarnyleon napisał:

    Jeśli ktoś potrzebowałby uniwersalnej reguły (nie wymagającej wpisywania adresu), przekierowującej na ‘bez www’ na’ z www’
    to zamieszczam poniżej:

    RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [R=301,L]

  53. MariuszT napisał:

    Czytaj uważnie, pisałem o uniwersalnym przekierowaniu tutaj http://www.tarnaski.eu/blog/un.....wanie-301/

  54. pin napisał:

    Witam, a ja mecze sie z takim problemem.
    Musze byc zalogowany na stronie jako admin i inny uzytkownik zeby sesje byly inne.
    Wiec musze odpalac dwie rozne przegladarki bo na tych samych pamieta te same sesje.
    Pomyslalem ze moze da sie jakos przekierowac z http://localhost/costam1 na http://localhost/costam2 z tym ze pood tym pierwszym liniem jest strona. Robie to jak w artykule ale cos nie dziala to przekierowanie.

  55. MariuszT napisał:

    Nie bardzo rozumiem po co Ci w Twoim przypadku przekierowanie… Pomijając to, w artykule wszystko jest jasno wytłumaczone i naprawdę ciężko mi powiedzieć czemu Ci przekierowanie nie działa.

  56. kmg napisał:

    PIN: wystarczy, że wyłączysz cookies, a wystarczy jedna przeglądarka
    Jeśli wyłączysz ciacha, a mechanizmy sesji są prawidłowo wdrożone php zacznie przekazywać identyfikator sesji w inny sposób – przez _GET lub _POST.
    Wtedy każda „zakładka” lub okno przeglądarki to osobna sesja.

    Ehhh, coś ostatnio ludzie są mniej świadomi mechanizmów, które stosują… A to smutne.

  57. kmg napisał:

    Swoją drogą ciekawe – Uwaga! (30.01.2008) dodana 4 miesiace przed opublikowaniem bloga ;D

  58. MariuszT napisał:

    Poprawiłem :)

  59. Bartosz napisał:

    Panie autorze… proszę poprawić przykład http://www.nasztomaszow.pl/kanaly-rss/ bo nie do końca jest tak jak napisałeś. Przedrostek śmiga, ale nazwa podstrony już się nie zmienia.
    A artykuł rzecz jasna pomocny i zrozumiale napisany.

    Pzdr

  60. MariuszT napisał:

    Ostatnio zmieniałem całkowicie stronę http://www.nasztomaszow.pl i niestety chwilowo nie działają kanały RSS. Jak uporam się teraz z najważniejszymi sprawami to przywrócę wszystko do normy. Za jakieś dwa tygodnie :P

  61. JereManU napisał:

    Super, bardzo przydatny artykuł – często do niego powracam. Dzięki.

  62. molibdenowy napisał:

    Dzięki – konkret

  63. js napisał:

    Mam pytanie :) powiedzmy, że chciałbym przekierować katalog lub poszczgólne pliki z jednej domeny na inną jak sie do tego zabrac

  64. MariuszT napisał:

    Poczytać to co zostało już wcześniej napisane… Reguły można łączyć, masz powyżej reguły dotyczące domen, masz reguły dotyczące katalogów, pomyśl, połącz je i zadziała.

  65. jacek napisał:

    cyt:”..Zwróćcie uwagę również na to co się dzieje gdy wejdziecie na taki adres: nasztomaszow.pl/kanaly-rss/. Nie tylko zmieni się adres z „kanaly-rss” na „kanaly-informacyjne” ale również zostanie dodany przedrostek „www” zgodnie z tym co pisałem wcześniej….”
    Niestety nie działa.
    I ja mam ten sam problem.
    Stara strona ma inne linki w adresie.
    nowa strona pod inną domeną ma również inne linki w adresie.
    Próbując przekierowania podstrony na podstronę, zmienia mi w adresie domenę, ale dokleja starą część linka w związku z tym tak jak na przykładzie z cytatu otwiera mi się pusta strona.
    dla przykładu przekierowanie strona.pl/cos –> strona.com/inne cos po otworzeniu daje: strona.com/cos i kicha.
    Jak temu zarazić?

  66. MariuszT napisał:

    O „kanaly-rss” już pisałem, o wszystkim innym również. Przykro mi, nie mam zwyczaju się powtarzać, inaczej co tydzień odpowiadałbym na te same pytania. Proszę poczytać wszystkie artykuły na tym blogu o 301 i komentarze do nich w razie potrzeby.

  67. Dociekliwy napisał:

    Sorry, za moje pytanie (bo może trochę głupie :/ ) ale:
    Mam wykupioną stronę : http://ABC.otomoto.pl/
    i chcę kupić domenę na nazwa.pl „ABC.pl” (po prostu żeby ludziom było łatwiej zapamiętać adres)
    Czy oprócz domeny na nazwa.pl muszę posiadać coś jeszcze czy da się tu zastosować to przekierowanie 301 żeby po wpisaniu http://www.ABC.pl otwierała się strona
    http://ABC.otomoto.pl/
    Bardzo mi zależy na łopatologicznym wyjaśnieniu sprawy.
    Z góry dzięki i jeszcze raz przepraszam jeżeli uznasz, że moje pytanie jest zbyt głupie :/

  68. MariuszT napisał:

    Nie wiem jak to wygląda na nazwa.pl. Dla wykupionej domeny muszą być ustawione DNS’y. Niektórzy rejestratorzy pozwalają od razu ustawić dla nowej domeny ich DNS’y a potem samemu je skonfigurować, ustawić przekierowania itd.

    Proponuję zarejestrować domenę na dropped.pl. Nie mają tam żadnych promocji więc za rejestrację zapłacisz 15zł ale potem odnowienia są najtańsze z możliwych i ogólnie masz wiele opcji konfiguracji. Jedną z nich jest ustawienie przekierowania. Łatwo, prosto i przyjemnie ;) Nawet nie będziesz potrzebował pomocy, sam szybko skapujesz co do czego.

    PS
    Nie podawaj publicznie adresu domeny, którą chcesz dopiero wykupić bo ktoś Cię ubiegnie. Dlatego zmieniłem adresy w Twoim komentarzu.

  69. mika napisał:

    A jak zrobić przekierowanie kilku domen na jedną?

    np. przykładowe domeny http://www.domena1.pl i http://www.domena2.pl na http://www.nowadomena.pl?? Bo wszędzie są tylko przykłady z jedną domeną, a ja kombinuję i mi nie wychodzi ;|

  70. MariuszT napisał:

    Możesz mnożyć warunki za pomocą OR:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?domena1.pl(.*) [NC,OR]
    RewriteCond %{HTTP_HOST} ^(www\.)?domena2.pl(.*) [NC]
    RewriteRule ^(.*)$ http://www.nowadomena.pl/$1 [R=301,L]

  71. mika napisał:

    Dzięki serdeczne za pomoc!
    Wszystko działa i śmiga jak należy :)

    Pozdrawiam :)

  72. Damian napisał:

    Witam,
    dzięki za pomoc. Artykuł bardzo pomocny, ale mam jeszcze pytanie.
    Miałem strukturę typu:
    domena.pl/strona1.php
    domena.pl/strona2.php
    domena.pl/strona3.php
    domena.pl/strona4.php
    teraz wygląda to tak:
    domena.pl/index.php?page=strona1
    domena.pl/index.php?page=strona2
    domena.pl/index.php?page=strona3
    domena.pl/index.php?page=strona4

    Zrobiłem przekierowania za pomocą skryptu PHP z tego artykułu. W plikach strona1.php, strona2.php, … powstawiałem ten skrypt PHP i teraz się zastanawiam, czy te pliki można będzie usunąć z FTPa, czy mają tam zostać już na zawsze. Google zaindeksowało już nowe adresy, ale nie usunęło jeszcze wszystkich starych. Czy jak usunie stare adresy to wtedy można usunąć stare pliki (strona1.php, …) ?
    Troszkę zmieniłem meta-tagi przy przekierowaniu na nową stronę i chyba przez to spadłem parę pozycji w google dla niektórych fraz.

    Pozdrawiam,
    Damian

  73. MariuszT napisał:

    Google zaindeksowało nowe adresy ale jeżeli są nadal w indeksie stare adresy to może oznaczać, że ich siła jeszcze nie została w pełni przekazana. Jeżeli to nie problem to proponowałbym jeszcze poczekać, potrzymać stare pliki aż całkowicie znikną z google. Gdy się to stanie to bez przeszkód możesz kasować stare pliki.

  74. Damian napisał:

    Oki, dzięki za poradę. W takim razie poczekam aż google je usunie z indeksu.
    Pozdrawiam,
    Damian

  75. Hook napisał:

    Witam,
    Jak zrobic przekierowanie w htaccess jesli stary plik mam np spr.htm a chce zmienic na sprezarki.htm
    spr.htm jest juz zaindeksowany i chcialbym aby ktos po kliknieciu np w google na spr.htm trafil na sprezarki.htm
    To sa tylko przykladowe nazwy bo musze sporo pozmieniac adresow, ktore nie tworzyc zgodnie ze szkola SEO

  76. MariuszT napisał:

    Zadaj sobie trochę trudu i przeczytaj artykuł…

  77. Hook napisał:

    Jakbym to zrozumial to bym pytania nie zadawal. Ale oszczedz sobie trudu z odpowiedzia skoro to dla ciebie problem. Poprosze kogos innego o wytlumaczenie

  78. MariuszT napisał:

    Rozejrzyj się, pomogłem już dziesiątkom ludzi (nie tylko pod tym artykułem, są jeszcze dwa inne dotyczące 301) . Odpowiedziałem każdemu kto wykazał jakąś inicjatywę, przeczytał artykuły i natknął się na problem, którego jeszcze nie opisałem. Ale jeżeli ktoś zadaje pytanie na które odpowiedź znajduje się w artykule to wybacz ale nie mogę pomóc. Nie jestem od rozdawania gotowych rozwiązań. Musiałbym wtedy nic nie robić tylko cały dzień odpisywać na blogu na setki takich samych pytań.

    Twój problem został rozwiązany w powyższym artykule w czwartym okienku z kodem. Jeżeli zmienionych adresów jest bardzo dużo i nie da się do nich stworzyć jakiejś uniwersalnej regułki (czyli dla każdego adresu trzeba przygotować osobne przekierowanie) to rozważyłbym rozwiązanie po stronie PHP zamiast htaccess. Nadmierna ilość przekierowań w htaccess wpłynie negatywnie na wydajność. Ile tych przekierowań będzie?

  79. Makito napisał:

    Witam.
    Ja mam dalej problem.
    Chcę przekierować w PHP-Fusion subdomenę na nowo zakupiona domenę:
    subdomena.nazwa1.pl chcę przekierować na nazwa2.com

    w Cpanelu ustawiałem różne kombinację ale nic nie pomogło. Może dobrze napisany htacces pomoże :)

    Proszę o pomoc.

    P.S.
    Wszystkie powyższe wpisy nie zadziałały :(

  80. Dominik napisał:

    Witam.

    Czytam cały dzień o przekierowaniach 301 ale ciągle mam problem.
    Testowałem stronę opartą o wordpress na moim serwerze w podkatalogu http://www.mojserwer.pl/podkatalog/
    Po jakimś czasie strona była gotowa i podpiąłem właściwą domenę http://www.wlasciwadomena.pl do tego samego katalogu na którym testowałem WP.
    Niestety wyniknął z tego problem ponieważ za indeksowana jest strona http://www.mojserwer.pl/podkatalog a nie http://www.wlasciwadomena.pl.

    Ustawiałem przekierowanie i doszedłem do prawie idelanego rozwiązania, działa z zaindeksowanymi stronami testowymi wywołując je site:mojserwer.pl/podkatalog/ i klikając przekierowywuje ruch

    RewriteEngine On
    redirectMatch 301 ^/podkatalog/ http://www.wlasciwadomena.pl
    ale działa to tylko do strony głównej, każda podstrona nie jest wyświetlana.

    Czy możesz mi pomóc ?

    Pozdrawiam

  81. MariuszT napisał:

    Coś takiego:

    ^/podkatalog.*$ http://www.wlasciwadomena.pl

  82. maxy napisał:

    witam mam takie pytanko, chciałem zrobić przekierowanie z dwóch podstron na jedną nową w pliku htaccess jak powinien wyglądać kod ??

  83. MariuszT napisał:

    Wykorzystaj treść artykułu i tego komentarza http://www.tarnaski.eu/blog/pr.....mment-2917

    Ewentualnie jeżeli nie dajesz sobie rady to zrób po prostu dwa przekierowania, osobno. Wszystko masz opisane powyżej.

  84. mike1982 napisał:

    Witajcie,

    Do domeny głównej abc.pl z poziomu administratora serwera podłączyłem dwie inne domeny dodatkowe o adresach cdb.pl oraz bcd.pl. W skutek czego google zaczęło indeksować wiele z podstron domeny głównej pod nazwą tych dwóch pozostałych domen. Zaraz po tym jak dostrzegłem swój błąd usunąłem je z miejsca z domen dodatkowych. Czy jest możliwość aby te linki google które cały czas występują pod nazwami cdb.pl oraz bcd.pl, a które korzystały z podstron domeny głównej, ponownie można było podlinkować do określonych podstron tejże domeny? Obecnie jest wiele tysięcy moich linków w google fukncjonujących pod domenami dodatkowymi, które w rzeczyiwstości wpływają na obniżony PR domeny głównej. Same otrzymały dość przyzwoity PR jednak nie to było moim celem :)

    Przekierowałem domeny dodatkowe na główną domenę jednak po kliknięciu w google, na dowolną zindeksowaną podstronę przechodzi do strony głównej.

    Wiem, że tutaj zadziała przekierowanie 301 ale jak je wykonać?

    Jakie powinno byc przekierowanie przy domenach dodatkowych oraz gdzie te wpisy htaccess się dokonuje przy domenach dodatkowych czy przy głównej? Domeny dodatkowe są umieszczone w parku domen na dropped.pl, jak tam mogę utworzyć ten plik? Doradzcie jak to zrobić!

  85. pajaczek napisał:

    stary post, a wciaz tak aktualny i przydatny. dzieki!

  86. MariuszT napisał:

    Mike, podepnij ponownie te dodatkowe domeny pod swoją stronę. Następnie na swoim serwerze ze stroną główną dodaj przekierowanie 301 tych domen na domenę główną. Ten kod powinien być dla Ciebie przydatny http://www.tarnaski.eu/blog/pr.....mment-2917

    Pajaczek, dzięki za miłe słowa ;)

  87. mazur napisał:

    Witam,

    A może wiecie jak zrobić przyjazne URLe przy takiej konstrukcji linka http://www.domena.pl/ogloszeni.....index.html ? Chciałbym , aby link wyglądał tak http://www.domena.pl/ogloszenia/nazwa-wpisu/ .

    Wielkie dzięki za wszelką pomoc?

  88. MariuszT napisał:

    Domyślam się, że takich adresów do zamiany jest więcej niż kilka dlatego potrzebna Ci interwencja programisty. W .htaccess trzeba zrobić ogólne przekierowanie i dopiero po stronie serwera sprawdzać adres i na jego podstawie wybierać do wyświetlenia odpowiednie ogłoszenie. Przy odrobinie sprytu da się nawet tak zrobić aby to rozwiązanie było wydajne i np. nie używało połączenia z bazą danych do sprawdzania o jakie ogłoszenie chodzi. Konkretnego rozwiązania Ci niestety nie podam, tu musi się już popisać programista. Tego typu linki zrobiłem chociażby do artykułów na http://www.nasztomaszow.pl

  89. mazur napisał:

    Tak dokładnie. Chciałbym ,aby dla wyszukiwania według głównych miast pojawiał się taki link http://www.domena.pl/ogloszenia/region/miasto/, dla kategorii i pod kategorii http://www.ogloszeniamazurskie.....ruchomosci.
    obecnie w .htaccess mam tylko przekierowanie 301 z bez www na www. Czytałem gdzieś , że bez ingerencji w bazie nie da się tego zrobić? Chodzi o pobieranie tytułu wpisu z bazy. A jaki sposób ty wybrałeś ?

  90. MariuszT napisał:

    Mało rzeczy się nie da. Wystarczy lekka zabawa z .htaccess i zbudowanie cache z odpowiednią strukturą katalogów na serwerze i się da. Na nasztomaszow.pl można wyłączyć bazę danych a artykuły nadal będą działały.

  91. mazur napisał:

    Może podasz jakiś konkretny przykład ? Swoją drogą jest to dobry temat na kolejny wpis na blogu, bo na pewno nie tylko ja mam ten problem.

  92. MariuszT napisał:

    Konkretny przykład byłby właśnie rozmiarów kolejnego wpisu na blogu :P Dzisiaj postaram się coś więcej na ten temat naskrobać ale nie obiecuję.

  93. mazur napisał:

    A jak jeszcze by się ci udało napisać o dynamicznych meta tagach (szczególnie title) to byłaby to rewelacja. Ciekaw jestem ile profesjonalny programista wziąłby za taką przeróbkę? Ach te cmsy!!

  94. mazur napisał:

    I co z tym wpisem??

  95. JimJam napisał:

    Witam serdecznie. Byłbym wdzięczny za pomoc w takim przypadku: z koniecznosci zmieniam system na którym działa strona. Siłą rzeczy zmienia się całkowicie konstrukcja linków podstron -z przykładowo z http://www.xxx/17,,,03,pl,697600,0.html na http://www.xxx/abc.html
    Ponieważ stare podstrony stoją wysoko w google, nie chce tego stracić.
    I teraz pytanie: zrobiłem testowe przekierowania kilku podstron za pomocą takiej linijki w.htaccess:
    redirect 301 /17,,,03,pl,697600,0.html /abc.html
    Przekierowania spełniają swoją funkcję – przenoszą na docelowe podstony. Nie jestem jednak pewien, czy faktycznie zachodzi tu przekierowanie 301 – jak to sprawdzić? I czy może jest inny albo prostszy sposób na rozwiązanie takiej kwestii niż ręczne wklepywanie przekierowań dla wszystkich podstron?

  96. MariuszT napisał:

    Informacja o przekierowaniu i jego typie znajduje się w wysyłanych przez stronę nagłówkach. Tu http://www.webconfs.com/http-header-check.php masz jakieś pierwsze lepsze narzędzie do sprawdzania nagłówków. Jeżeli jest 301 to powinno wypluć taki ciąg znaków „HTTP/1.0 301 Moved Permanently”.

    Jeżeli nie ma jakiegoś jednego klucza, który odpowiadałby wszystkim przekierowaniom to trzeba je ustawić ręcznie. Albo w .htaccess albo, jeżeli jest ich wiele, z poziomu PHP czy innego języka server side.

  97. JimJam napisał:

    Dzięki wielkie za podpowiedź, sprawdziłem nagłówki i dla wszystkich przekierowywanych podstron wyrzuca HTTP/1.0 301 Moved Permanently oraz Location =>docelowy adres. Niestety nie ma klucza dla przekierowań, a że PHP nie ograniam za bardzo, to teraz tylko parowanie jakiś 300 linków przede mną…:)

  98. MariuszT napisał:

    300 to niebezpiecznie dużo. Może to negatywnie wpłynąć na wydajność serwera. Plik .htaccess musi być za każdym razem „obrobiony” przez Apache. Nie jest to robione tylko przy zapytaniach o stronę ale także o inne pliki (css, pliki graficzne itd.) czyli ruch jest bardzo duży. Ja bym tam nie wsadził trzystu przekierowań :)

  99. JimJam napisał:

    Niedobrze… jak rozwiązać taki problem? Zrobić większą selekcję linków? Jaką ilość przekierowań w .htacces uznałbyś za maksymalną?

  100. MariuszT napisał:

    Ja bym nie szedł na kompromisy i oprogramował to w PHP. Nikt Ci dokładnie nie policzy ile przekierowań zrobić żeby było przyzwoicie. Ja najwięcej robiłem 20, może 25.

  101. JimJam napisał:

    Rozumiem że powienienem użyć

    No to teraz zadam pytanie laika :) : gdzie ten kod po dostosowaniu wstawić?:))

  102. Zapytam napisał:

    Mam prośbę o podpowiedź w jaki sposób rozwiązać taki problem:
    Gdy założyłem bloga przyjazne adresy kończyłem rozszerzeniem .html ale doszedłem do wniosku, że chyba lepiej będzie aby były jak najkrótsze więc teraz nie ma .html na końcu. Google zdążyło część starych zaindeksować i nie znajduje strony po otwarciu (przykład http://sanokinfo.pl/hokej-glosuj-na-sanok.html).
    W jaki sposób hurtowo kierować wszystko co kończy się na .html na adres poprawny (bez końcówki)?

  103. JimJam napisał:

    zmotywowałem się, pogrzebałem i doszedłem już do momentu w którym .htacess przerzuca wszystkie zapytania na index.php. Pytanie – jakiej formułki php uzyć żeby „ręcznie” ustawić przekierowania konkretnych podstron z xyz.pl na abc.pl ? Do tej pory udaje mi się jedynie przekierować wszystko z xyz.pl na jedną stronę abc.pl…

  104. MariuszT napisał:

    @Zapytam

    RewriteRule ^(.*)\.html$ /$1/ [R=301, L, QSA]

    Nie testowałem.

    @JimJam. Powinieneś pobawić się zawartością $_SERVER['REQUEST_URI']. Sprawdzać co tam jest i na tej podstawie decydować czy i na co przekierować.

  105. Zapytam napisał:

    Niestety dalej nie działa:( Ale dzięki za chęć pomocy.

  106. lucas_yas napisał:

    Zmieniam silnik witryny. Poprzednio pliki były wywoływane np. ?p=linki.php. W nowej witrynie prawidłowy adres wygląda linkownia.html. Mam około 10 podstron które chciałbym tak przekierwoać. Jak to zrobić w htaccess? Próbowałem
    RewriteRule ^?p=linki.php linkownia.html [R=301,L]
    RewriteRule ^?p=linki.php /linkownia.html [R=301,L]
    wywalały internal error
    RewriteRule ^/?p=linki.php /linkownia.html [R=301,L]
    nie wywala błędu ale i nie działa. Co robię źle? Pomóżcie proszę

  107. MariuszT napisał:

    @Zapytam. Powinno działać ale nie testowałem. Kombinuj.

    @Lucas, spróbuj tego:
    RewriteRule ^\?p=linki.php$ /linkownia.html [R=301,L]

  108. lucas_yas napisał:

    @MARIUSZT
    Niestety też nie działa :-(

    Zniechęciłem się i dodałem na początku index.php przekierowanie 301 w zależności od $_GET['p']. Ale dzięki za chęci.

  109. MariuszT napisał:

    Lucas, powinno działać chociaż już sam nie pamiętam czy nie trzeba dodać flagi QSA żeby Apache brał pod uwagę tzw. Query String. Trzeba byłoby poeksperymentować. Ale jeżeli sobie poradziłeś innym sposobem to super :)

  110. arek napisał:

    Hmm robiłem już chyba wszystkie kombinacje pod słońcem i dalej nie działa.
    Mam na starej stronie adresy np /?page=dzial a chcę stare podstrony ręcznie przekierować w htaccesie na nowe podkatalogi /dzial. Nowy cms to drupal i za cholerę mi nie działają te przekierowania. Będę wdzięczny za pomoc lub jakieś wskazówki.

  111. kosula napisał:

    Witam

    Mam problem prosze o pomoc – mialem strone w htmlu jednak aktualnie jest w php. Wiekszosc linkow, ktorymi linkuje strone pokzauje blad ze strona http://www.mojadomena.net.pl/index.html jest nieodnaleziona. musze zrobic przekierowanie z index.html na index.php: utworzylem plik htacces o nastepujacej tresci: RewriteEngine On
    rewritecond %{http_host} ^www.ekonta.net.pl/index.html [nc]
    rewriterule ^(.*)$ http://www.ekonta.net.pl/index.php/$1 [r=301,nc]

    czy to jest ok czy zadziala?

  112. MariuszT napisał:

    @Arek, komentarz nad Twoją wypowiedzią dotyczy również Ciebie.

    @Kosula. Poniższe powinno działać.

    RewriteEngine On
    RewriteRule ^index.html index.php [R=301,L]

  113. kosula napisał:

    MAriusz, niestety nie dziala ;/ moj plik nazywa sie .htaccess.txt, ma rozszerzenie txt, tak powinno byc? nie wiem teraz czy jest zl plik zrobiony czy zla formula ;/

  114. kosula napisał:

    cos nie gra z formulka, jak sprawdzilem to jak sie wchodzi na strone http://www.domena.net.pl/index.html to probuje przekierowac na strone – http://www.ekonta.net.pl/home/...../index.php, zamiast po prostu na http://www.ekonta.net.pl/index.php

    macie jakis inny pomysl co do formulki?:)

  115. MariuszT napisał:

    Czy widziałeś gdziekolwiek na tej stronie plik z rozszerzeniem txt? Naprawdę wystarczy tylko czytać http://www.tarnaski.eu/blog/pr...../#htaccess

  116. kosula napisał:

    ok skapowalem sie ze txt to zle rozszerzenie ale i tak cos jest nie tak bo przekierowywuje do zlego katalogu, napisalem jeszcze jednego posta, nie wiesz w czym moze tkwic blad?

  117. MariuszT napisał:

    Proponuje przekierować zarówno index.html jak i index.php na główną domenę. Ta regułka powinna załatwić sprawę. Nie pisałem jej sam, nie chce mi się ;) Znalezione w google.

    RewriteEngine On
    RewriteCond %{THE_REQUEST} ^.*/index.html
    RewriteRule ^(.*)index.html$ http://www.yoursite.com/$1 [R=301,L]
    RewriteCond %{THE_REQUEST} ^.*/index.php
    RewriteRule ^(.*)index.php$ http://www.yoursite.com/$1 [R=301,L]

  118. kosula napisał:

    Dziekuje bardzo za pomoc :) dziala poprawnie:) pozdrawiam, milego dnia:)

  119. villi napisał:

    Mariusz wszystko fajnie ..tylko czy moglbys takiemu zielonemu jak ja wytlumaczyc gdzie ten kod wstawic?Pozdrawiam

  120. MariuszT napisał:

    @villi, wszystko jest dokładnie wytłumaczone. Kod wstawia się do pliku .htaccess o którym napisałem kilka słów tutaj http://www.tarnaski.eu/blog/pr...../#htaccess

    Jeżeli chodzi o kody PHP to wszystko zależy od zastosowanych metod programowania, struktury strony, plików itd. Przy każdej stronie wygląda to trochę inaczej dlatego musi to zrobić ktoś kto orientuje się jak ta strona działa i nie mogę Ci tu pomóc.

  121. villi napisał:

    Wpozadku..powiedz tylko czy dobrze to rozumiem ,chodzi o plik .htaccess na serwerze?
    Kozystam z cpanela,i jedyna opcje jaka widze zwiazana z apachem jest „Apache Handlers” ktora daje mi mozliwosc dodawania..i to wszystko..ale .htacess nie ma…

  122. MariuszT napisał:

    Musisz wgrać odpowiedni plik .htaccess na serwer, poprzez FTP lub przez swój panel. I proszę Cię ostatni raz, czytaj co jest wyżej napisane bo zadajesz pytania na które odpowiedzi się tutaj od dawna znajdują.

  123. Z napisał:

    Tak, bardzo ważne informacje, tkx

  124. heel napisał:

    witam,
    nie moge sobie poradzic z 301 dla stronki kolegi która jest na moim serwerze ale w jednym z podkatalogow. domena kolegi (kolega.pl) wskazuje powiedzmy na katalog public_html/kolega. oczywiscie przekierowanie mojej stronki (moja.pl) po wpisie w .htacces dziala bez zarzutu ale dodanie przekierowania dla kolega.pl niestety przekierowuje do kolega.pl/kolega – i tu jest kicha. czy mama w podkatalogu kolega utworzyć inny .htacces (probowalem ale nie idzie).

    pp

  125. karamba napisał:

    Chciałbym przekierować następującą stronę:
    http://www.costam.com/costam-s.....etowy.html
    na stronę http://www.esklep.costam.com/index.php
    jak to zrobić ?
    wielokrotnie próbowałem różnych kombinacji i nic mi nie wychodzi.
    mam jeszcze kilka stron w katalogach głębiej i mam ten sam problem

  126. karamba napisał:

    mam tak
    RewriteEngine On
    rewritecond %{http_host} ^www.costam.com/costam-sklep-internetowy/costam-sklep-internetowy.html [nc]
    rewriterule ^(.*)$ http://www.esklep.costam.com/ [r=301,nc]

  127. karamba napisał:

    Szukałem szukałem i znalazłem odpowiedź na swoje pytanie
    RewriteEngine On
    RewriteRule ^sklep-internetowy-costam.html$ http://www.esklep.costam.com/$1 [R=301,L]

    może komuś się przyda :)

  128. Anonim napisał:

    To został jeszcze jeden problem
    mam tak
    http://www.costam.com/coswiecej/drobiazg/ chcę to przekierować na
    http://www.nowadomena.com

    co mam wpisać ?

  129. john napisał:

    jak zrobić żeby z każdej podstrony która nie istnieje kierowało na główną?

  130. MariuszT napisał:

    @Hell
    Najprościej w każdym katalogu na który wskazuje domena umieścić osobny .htaccess z odpowiednim przekierowaniem.

    @Karamba
    Wystarczyło uważnie czytać i trochę pomyśleć :)

    @Anonim (domyślam się, że Karamba)
    Doszedłeś do trudniejszego rozwiązania a teraz nie radzisz sobie z prostszym problemem? Pomyśl…

    @John
    W .htaccess za pomocą mod_rewrite raczej tego nie ustawisz. Ten moduł sprawdza jakie są przychodzące nagłówki i na tej podstawie dokonuje czynności. Nie wie jaka jest odpowiedź serwera bo najpierw on działa (moduł) a dopiero potem następuje uruchomienie np. skryptów PHP. Za pomocą mod_rewrite mógłbyś jedynie sprawdzić czy dany plik istnieje fizycznie na serwerze i jeżeli nie to wtedy robisz przekierowanie. Ale teraz jest PHP i inne języki i plik nie musi istnieć aby serwer wiedział co robić i aby wyświetlił odpowiednią stronę. I odwrotnie, nawet gdy plik istnieje to nie ma gwarancji, że nie zwróci 404.

    Do obsługi różnych nagłówków błędów służy dyrektywa ErrorDocument. U Ciebie powinno to wyglądać tak:

    ErrorDocument 404 /

    Ale to zwróci nagłówek 404. No chyba, że strona główna sama wysyła inny nagłówek to wtedy być może uda Ci się go nadpisać (nie sprawdzałem). Ale to wyjdzie jakiś bajzel totalny.

    Najlepszym rozwiązaniem w Twoim przypadku jest użycie PHP (czy inny język jakiego używasz lub możesz użyć). W nim sprawdzaj czy strona istnieje i jeżeli nie to rób odpowiednie przekierowanie.

    Na koniec dodam, że moim zdaniem przekierowanie na główną gdy nie znaleziono strony to zły sposób. Strona 404 powinna istnieć a Ty powinieneś się skupić na tym aby google nie indeksowało adresów, których nie ma.

  131. paul napisał:

    witam, moja strona wpisywana w oknie przegladarki wyskakuje z ww i bez www, chcialbym zrobic przekierowanie na tylko www? jak to zrobić?

  132. MariuszT napisał:

    Masz długi artykuł na ten temat i kilkadziesiąt komentarzy i pytasz „jak to zrobić” ? Żarty sobie stroisz…

  133. Rafał napisał:

    Dzięki Mariusz, bardzo mi pomogłeś.

Odpowiedz



Podobne wpisy: