Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne]Przyjazne i brzydkie adresy URL jednocześnie?
-Gość-
post 11.06.2012, 13:44:32
Post #1





Goście







Do tej pory moja strona miała brzydkie adresy URL typu:
http://strona.pl/?url1=Reprezentacje&url2=Polska
teraz chciałbym zamienić to na przyjazne adresy typu:
http://strona.pl/Reprezentacje/Polska

Pytanie tylko, czy punktu widzenia SEO lepiej będzie gdy te stare linki z brzydkimi adresami URL nadal będą działały?

Z jednej strony tak, bo przez kilka lat odkąd mam stronę linkowałem właśnie tymi brzydkimi adresami URL, więc gdyby przestały działać to być może straciłbym moc tych wszystkich linków (i moja strona spadłaby w SERPach)?
Z drugiej strony nie, bo teraz każda będzie dostępna z dwóch adresów URL (nowego przyjaznego i starego brzydkiego), więc czy nie zostanie to uznane za Duplicate Content (co też negatywnie odbije się na pozycji w SERPach)?
Go to the top of the page
+Quote Post
Crozin
post 11.06.2012, 13:54:04
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wykonaj przekierowanie (301) ze starego adresu na nowy.
Go to the top of the page
+Quote Post
thek
post 11.06.2012, 14:08:44
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Crozin Ci dobrze podpowiada i Twoje przypuszczenia są prawidłowe. Uwalenie starych adresów sprawiłoby, że straciłbyś dotychczasowe strony zaindeksowane i tym samym ich moc zgromadzoną. Nowe adresy są pewnie zbyt świeże i nie posiadają jej. Jednoczesne istnienie obu google faktycznie uzna za DC i Narzędzia webmastera na 200% wskazałyby to. Najprostsze i najlepsze rozwiązanie to rzucenie starej wersji nagłówka "Moved permanently", zyli popularna 301. Możesz to zrealizować na kilka sposobów. Na poziomie htaccess to oczywiście na start. Ja dla pewności zawsze do kontrolera robię jeszcze sprawdzanie, gdzie porównuję aktualny adres z paska do tego, który jest prawidłowym. Jeśli choć jedna literka się nie zgadza, ponowne przekierowanie 301 na w 100% prawidłowy adres. Jest to oczywiście w skrajnych przypadkach niezbyt wydajne, ale za to 100% SEO-pewne rozwiązanie.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
kamil4u
post 11.06.2012, 15:36:40
Post #4





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Cytat
Na poziomie htaccess to oczywiście na start. Ja dla pewności zawsze do kontrolera robię jeszcze sprawdzanie

A kiedy htaccess może nie zadziałać? Co by się musiało stać? Jakieś skrajne przypadki? Dobrze nie znam tego tematu( htaccess ) dlatego pytam.


--------------------
Go to the top of the page
+Quote Post
Crozin
post 11.06.2012, 16:16:23
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


.htaccess działa na poziomie serwera HTTP, a nie aplikacji. To niejednokrotnie może być złe środowisko dla wykonania takiego przekierowania (przykładowo, kiedy musisz pobrać slug tytułu artykułu, by przekierować na .../123/tytul-artykulu).
Go to the top of the page
+Quote Post
-Gość-
post 12.06.2012, 13:05:06
Post #6





Goście







Cytat(thek @ 11.06.2012, 14:08:44 ) *
Na poziomie .htaccess to oczywiście na start.


Mój plik .htaccess wygląda obecnie tak:
Cytat
# przekierowanie z brzydkiego adresu na przyjazny:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [L]

# kod robiacy przkierowanie z www na bez www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.strona.pl(.*) [NC]
RewriteRule ^(.*)$ http://strona.pl/$1 [R=301,L]


Czyli w .htaccess robię tylko przekierowanie z brzydkich na przyjazne adresy,
a właściwą pracę z przyjaznymi adresami wykonuje już w PHP, tzn:
funkcja explode() rozdziela zmienną $_SERVER['PATH_INFO'] na podstawie znaku '/' i z tej tablicy wydobywam zmienne
Jak w moim przypadku powinienem więc zrobić w pliku .htaccess przekierowanie 301
z starych brzydkich adresów na nowe ładne?
Go to the top of the page
+Quote Post
-Gość-
post 12.06.2012, 13:12:14
Post #7





Goście







Ehh trochę namieszałem.

Ten komantarz w pliku .htaccess jest błędny, bo powinno chyba być:
Cytat
# przekierowanie z przyjaznego adresu na brzydki:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1 [L]
Go to the top of the page
+Quote Post
-Gość-
post 18.06.2012, 15:48:41
Post #8





Goście







Cytat(thek @ 11.06.2012, 14:08:44 ) *
Jednoczesne istnienie obu google faktycznie uzna za DC i Narzędzia webmastera na 200% wskazałyby to.


Gdzie konkretnie (w której opcji) w Narzędziach webmastera można zobaczyć czy na stronie jest zduplikowana treść?
Go to the top of the page
+Quote Post
-Gość-
post 23.04.2013, 14:10:50
Post #9





Goście







Cytat(thek @ 11.06.2012, 14:08:44 ) *
Najprostsze i najlepsze rozwiązanie to rzucenie starej wersji nagłówka "Moved permanently", zyli popularna 301. Możesz to zrealizować na kilka sposobów.


Czy w PHP taki sposób:
header("Location: http://strona.pl/przyjazny-adres");
to przekierowanie 301, czy też trzeba to jakoś inaczej zrobić?
Go to the top of the page
+Quote Post
Crozin
post 23.04.2013, 15:05:45
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Nie, to jest jedynie ustawienie nagłówka Location (wymaganego przy odpowiedzi HTTP 301). Musisz jeszcze ustawić sam kod odpowiedzi:
  1. header('HTTP/1.1 301 Moved Permanently');


Oczywiście, nie żadne <a h...> tylko sam adres URL. Parser BBCode forum szaleje. wink.gif

Ten post edytował Crozin 23.04.2013, 15:06:52
Go to the top of the page
+Quote Post
-Gość-
post 23.04.2013, 16:12:31
Post #11





Goście







Podany przez Ciebie kod jest chyba równoważny z tym?

Cytat
header("Location: /foo.php",TRUE,301);

http://www.php.net/manual/en/function.header.php#78470

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 13:42