Skocz do zawartości

redirect 301 a podstrony


outofmatrix

Rekomendowane odpowiedzi

Kilka dni temu na jednej z moich stronek wprowadziłem przyjazne linki. Strona jest oparta na wordpressie. Generalnie wszystko jest ok, wpisałem co trzeba w .htaccess i działa ale zastanawiam się czy teraz na każdej podstronie powinienem dać redirect 301, np w postaci:

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: https://strona.pl/nowy-tytul-podstrony" );
?>

Chodzi o to, że podstrony były linkowane, mają jakiś PR i teraz szkoda to wszystko stracić. Podstron mam ok. 50, więc roboty nie będzie dużo. Tylko czy warto? Czy ew. jest jakiś inny sposób na to, żeby "moc" starych podstron przeszła na nowe? (może jakaś ogólna komenda w htaccess?)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli poprzednio miałeś adresy w postaci strona.pl/?id=1 to na tej podstawie możesz wysłać zapytanie do bazy danych o "slug post" ( SELECT post_slug FROM tabela WHERE post_id = $_GET['id']) i robić przekierowanie jak wyżej tylko zamiast wpisywać na sztywno cały adres strony podajesz domenę + zmienna przechowująca wartość "slug post" (https://strona.pl/$slug).

slug post to pole odpowiedzialne za "tytul-nowej-podstrony", zapytanie ktore pokazałem Ci wyżej musisz skonstruować na podstawie rzeczywistej struktury tabeli.

Odnośnik do komentarza
Udostępnij na innych stronach

Daj nowe - jak ja miałem w Sitemap stare linki z 301 na nowy adres, to G się przyburzył że są błędy w Sitemapie.

Polecam moje pluginy do WordPress'a: WyPiekacz, Meta SEO Pack, User Locker, Google Integration Toolkit i wiele innych :)

Poradnik Webmastera ‰ Ostatnio na blogu:

PoradnikWebmastera-Blog.1.gif

Odnośnik do komentarza
Udostępnij na innych stronach

OK, więc dam nowe, ale chyba nie od razu, żeby robot wszedł jeszcze na stare strony i załapał komędę redirect? Czy źle myślę?

Mam tylko problem z wpisaniem kodu redirect 301. Jeśli wklejam go na podstronę w wordpressie to jest on widoczny na tej podstronie - nie tylko w źródle strony jak np. meta, czyli ukryty dla użytkownika tylko normalnie widoczny na stronie. Chyba więc wklejam go w niewłaściwym miejscu? Ale w takim razie gdzie go wkleić? Innymi słowy jak zrobić w wordpressie redirect 301 na podstrony?

Odnośnik do komentarza
Udostępnij na innych stronach

sitemap sie nie przejmuj, równie dobrze możesz go nie mieć :>

wyedytuj plik index.php i tam umieść kod przekierowania dla każdego postu z osobna (jeśli już chcesz to robić manualnie)

if ($_GET['id'] == 5) {

# przekieruj na stona.pl/nowa-postrona

}

Odnośnik do komentarza
Udostępnij na innych stronach

@Kul dzięki za pomoc ale jeszcze nie wiem czy dobrze rozumiem. Teraz w pliku index.php mam:

<?

// sprawdzenie adrewsu www, jak sie nie zaczyna od www to przekierowanie

if (substr($_SERVER['HTTP_HOST'], 0, 3) !== 'www')

										   {

										   header("location:https://www.strona.pl".$_SERVER['REQUEST_URI']);

										   exit;

										   }

Czy wystarczy teraz dodać:

if ($_GET['id'] == 5) {
# przekieruj na stona.pl/nowa-podstrona-1
}
if ($_GET['id'] == 5) {
# przekieruj na stona.pl/nowa-postrona-2
}
if ($_GET['id'] == 5) {
# przekieruj na stona.pl/nowa-postrona-3
}

Czy tak to ma wyglądać? Bo coś brakuje mi nazwy starej podstrony :D I w którym miejscu dokładnie wkleić ten kod?

edit:

Szukam w googlach rozwiązania problemu i natrafiłem na różne warianty przekierowańale żadnego podobnego do mojego. Z różnych informacji skleiłem jednak taką komendę w .htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^nowa-podstrona-1 $ stara.php?strona-1 [R=301,L]
RewriteRule ^nowa-podstrona-2 $ stara.php?strona-2 [R=301,L]
RewriteRule ^nowa-podstrona-3 $ stara.php?strona-3 [R=301,L]

itd.... Czy coś takiego zadziała?

Dodam, że w .htaccess mam teraz kod podany przez wordpressa po zmianie na nowe adresy:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Odnośnik do komentarza
Udostępnij na innych stronach

za pomocą togo .htaccess który znalazłeś będzie chyba najszybciej. wzbogać ten który masz tym który znalazłeś

dla testu wejdź na stary adres (ten z id) i jak wszystko będzie ok to zostaniesz przekierowany na ten zdefiniowany w .htaccess

w tym rozwiązaniu z użyciem php id powinno odpowiadać id postu a w tym Twoim kodzie chyba tak do końca nie jest :D

if (isset($_GET['p'])){
 header( "HTTP/1.1 301 Moved Permanently" );
  if($_GET['p'] == 1) {
  header("location: https://strona.pl/nowy-tytul-podstrony-1");
  }
  if($_GET['p'] == 2) {
  header("location: https://strona.pl/nowy-tytul-podstrony-2");
 }
}

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety nic nie daje rezultatów. W wariancie z .htaccess wywala błąd 500 (Internal Serwer Error) a w wariancie ze zmianą w index.php nic się nie zmienia (tzn. adres w pasku adresu pozostaje stary, PR podstrony pod nowym adresem n/a).

I co jeszcze zauważyłem to pod nowym adresem podstron nie wyświetla się shortcut icon w pasku adresu.

Kombinuje, kombinuje i nic :D

Odnośnik do komentarza
Udostępnij na innych stronach

A jak ma Ci sie przeniesc PR na nowe podstrony skoro nie dziala to co bezradnie probujesz zrobic, a po drugie zaraz po ustawieniu przekierowania chcesz miec przeniesione PR ? Nie zartuj.

Skoro nie umiesz ustawic regulek w htaccess to zrob to w php, ale przedtem poczytaj o tym troche, bo z tego co czytam to robisz to zupelnie po omacku. A jak nie potrafisz to zlec to komus lub sobie daruj.

Pozdrawiam

Niedrogie wpisy w płatnych, zadbanych, długowiecznych katalogach (hurtem taniej - pisać na PW):

Odnośnik do komentarza
Udostępnij na innych stronach

@holee Dzięki za słowa otuchy ;)

Jak bym znał się na php to na pewno nie pytałbym w dziale dla początkujących. Znam się na innych rzeczach na tym nie, więc pytam i próbuję. Czy to takie dziwne?

Edit:

No, pół niedzieli mi to zajęło ale sukces jest prawie pełny :D Jak zwykle rzeczy, które wydają się być trudnymi okazują się być banalnie proste. Ponieważ na polskich stronach nic nie znalazłem, poszukałem po angielskich i oto jest - piękna

wtyczka do wordpressa

:)

Problem więc prawie rozwiązany ale jeszcze została jedna kwestia - shortcut icon, która na podstronach z nowym adresem się nie wyświetla, nie wiedzieć czemu...

Odnośnik do komentarza
Udostępnij na innych stronach

jak wygląda Twój .htaccess po modyfikacji? pokarz tez kod php którym chcesz zrobić przekierowanie, bo tak to ciężko cokolwiek powiedzieć

Jeśli chodzi o przeniesienie PR to nawet przy poprawnym przekierowaniu mogą być kłopoty z przeniesieniem (czasami po prostu nie jest przenoszony)

Odnośnik do komentarza
Udostępnij na innych stronach

@ Kul Dzięki za pomoc. Chyba wtyczka, o której piszę wyżej w edit'cie załatwiła sprawę pozytywnie :D Pozostała kwestia shortcut icon - masz może jakiś pomysł co powoduje, że po zmianie linku się nie wyświetla?

PR jest mniej ważny, wspomniałem o nim tylko opisując brak zmian na podstronie. Poczekamy, zobaczymy czy googiel go przeniesie.

Tak czy inaczej już wiem, że jakiś kurs php by mi się przydał.

edit: shortcut icon już działa na podstronach - chyba ikonka potrzebowała czasu, żeby się przyzwyczaić do nowych ustawień :)

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • 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