Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: RewriteRule i przyjazne adresy
Forum PHP.pl > Forum > Optymalizacja i pozycjonowanie stron - SEO
mazury
Dotychczas moja strona działała na adresach jak poniżej:
domena.com/item.php?id=XXXXXXXXXXXXXXX

Chciałem zmienić na adresy przyjazne seo i dodalem do htaccess
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^item/([^/]{14}) /item.php?id=$1 [L]

No i fajnie po wpisaniu adresu:
domena.com/item/XXXXXXXXXXXXXXX
wyswietla sie zawartosc odpowiedniej strony.

Aby nie bylo problemu duplicate content w kodzie strony dopisalem:
  1. <link rel="canonical" href="https://www.domena.com/item/XXXXXXXXXXXXXXX" />


Zastanawia mnie tylko fakt ze google ma zaindeksowane teraz oba adresy url. Czy nie powinno to byc zrobione na przekierowaniach 301 a jesli tak, to w jaki sposób bo w rewrite rules nie jestem zbyt mocny? Z góry dziękuję za podpowiedz.

--
Pozdrawiam,
Andrzej
kreatiff
Powinno być 301. Dodaj przy L jeszcze R=301, czyli [R=301,L],
A w samym kodzie strony poprzerabiaj tak, by linki wewnętrzne pokazywały tylko te nowe adresy.
mazury
Cytat(kreatiff @ 11.02.2022, 23:24:58 ) *
Powinno być 301. Dodaj przy L jeszcze R=301, czyli [R=301,L],
A w samym kodzie strony poprzerabiaj tak, by linki wewnętrzne pokazywały tylko te nowe adresy.


Właśnie tak próbowałem wcześniej. Po zmianie na "[R=301,L]" i kliknięciu linka: domena.com/item/XXXXXXXXXXXXXXX
W polu adresu przeglądarki pojawia się adres: domena.com/item.php?id=XXXXXXXXXXXXXXX

--
Pozdrawiam,
Andrzej
kreatiff
A no tak, zamień jeszcze miejscami warunki. Pokombinuj coś w tym stylu:

RewriteRule ^/item.php?id=([^/]{14})$ /item/$1 [R=301,L]

Dodaj to jako osobną linię w .htaccess przed tym co w pierwszym poście.

PS testuj sobie to z przekierowaniem 302, ono się nie keszuje w przeglądarce. Jak będzie już działało, to wówczas zmień na 301.
mazury
Dodałem linie przed moimi regułami:
Cytat
RewriteRule ^/item.php?id=([^/]{14})$ /item/$1 [R=301,L]


Niestety nic się nie dzieje... adres w polu przeglądarki pozostaje cały czas w postaci:
domena.com/item.php?id=XXXXXXXXXXXXXXX

sad.gif
trueblue
Ile czasu minęło od wprowadzeniu tagu dotyczącego kanonicznych URL, do momentu kiedy sprawdzałeś index Google?
mazury
2-3 tygodnie. Wiem ze to trochę potrwa zanim wszystko zostanie ponownie zaindexowane. Jednak wskazniki kanoniczne sa tylko wskazowka dla Google i wydaje mi sie ze powinno to byc zrobione na 301. Niestety nie mam juz pomyslu jak to zrobic zeby dzialalo.
trueblue
Nie musi być zrobione na 301.
Po to są adresy kanoniczne. Usuń jakiś "nieprzyjazny" adres z indeksu Google i zobacz czy zaindeksuje go ponownie.
viking
Zresztą ostatnio google ma podobno duże problemy z indeksowaniem. Nawet kilkumiesięczne.
mazury
Cytat(trueblue @ 13.02.2022, 13:38:34 ) *
Nie musi być zrobione na 301.
Po to są adresy kanoniczne. Usuń jakiś "nieprzyjazny" adres z indeksu Google i zobacz czy zaindeksuje go ponownie.


Ale w przypadku usuniecia adresu nie bedzi przekazania "mocy" odnosnika. Jesli byly linkowania do danego url, to nowy url bedzie "dziewiczy".
trueblue
Spróbuj takich reguł:

Kod
RewriteCond item.php -f
RewriteCond %{QUERY_STRING} ^id=([\d]+)$
RewriteRule ^ /item/%1? [R=301,L]
mazury
Cytat(trueblue @ 14.02.2022, 09:34:29 ) *
Spróbuj takich reguł:

Kod
RewriteCond item.php -f
RewriteCond %{QUERY_STRING} ^id=([\d]+)$
RewriteRule ^ /item/%1? [R=301,L]



Pod dopisaniu tych regul niestety nic sie nie dzieje z adresem sad.gif

Pozdrawiam
trueblue
https://htaccess.madewithlove.com?share=c3a...63-bf8228ea39c5

Możesz pokazać cały .htaccess lub chociaż tą część, którą uznajesz z odpowiedzialną za przyjazne URL i fragmentem, który podałem?
mazury
Cytat(trueblue @ 14.02.2022, 21:31:25 ) *
https://htaccess.madewithlove.com?share=c3a...63-bf8228ea39c5

Możesz pokazać cały .htaccess lub chociaż tą część, którą uznajesz z odpowiedzialną za przyjazne URL i fragmentem, który podałem?



U mnie to obecnie wyglada tak:

https://htaccess.madewithlove.com?share=7f8...20-f8d00eb4aef9
trueblue
Część odpowiedzialna za przepisywanie na przyjazne adresu URL, działa poprawnie.
Drugiej części, którą podałem nie ma.
mazury
Cytat(trueblue @ 15.02.2022, 14:21:43 ) *
Część odpowiedzialna za przepisywanie na przyjazne adresu URL, działa poprawnie.
Drugiej części, którą podałem nie ma.


Pod dodaniu tych linijek ktore zaleciles zeby wkleic jest tak:
https://htaccess.madewithlove.com?share=ae9...7a-4ef6a0f5855a

Pewnie robie jakas trywialna glupote...?
trueblue
Tester działa w jednym przebiegu.

Jeśli na początku jest reguła odpowiadająca za przekierowanie na www, to ta się wykona i nic więcej.

Wprowadź dla testów adres z https oraz www.
mazury
ok. Wszystko jasne. Dzieki wielkie!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.