Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][MySQL][PHP] Przyjazne linki i .htaccess, Utknąłem. Wiele pytań... Wiem, że temat już był nie raz...
roobik
post 17.05.2017, 11:46:49
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Witam.
Przyjazne linki to temat wałkowany setki razy. Przejrzałem dość sporo tematów (zarówno na tym Forum, jak i na innych stronach) i szczerze mówiąc mam niezły mętlik... Im bardziej się w ten temat zagłębiałem, tym mniej wiem.

OK. Postanowiłem więc działać i sprawdzić czy i jak to hula. Robię to na dziale z serialami online, a jak wiadomo tytuły poszczególnych odcinków niekiedy "szokują" ilością znaków nie-alfanumerycznych, czyli np. !, ?, [, ], ", '...
Ponadto (jeśli chodzi o polskie seriale) są polskie znaki diakratyczne. No i żeby było jeszcze "fajniej", to są spacje.

Dobra - do rzeczy.
Do tej pory, aby wejść na konkretny odcinek, trzeba było wejść na adres:
www.moj_serwer.pl/filmy.php?id=777

Tytuł serialu: 07 zgłoś się
Tytuł odcinka: Odc. 1 - Major opóźnia akcję

Już w samym tytule serialu mamy na dzień dobry ł, ś i ę oraz spacje.
W tytule odcinka jeszcze kropka...

Moje założenie:
www.moj_serwer.pl/07_zglos_sie/Odc._1_-_Major_opoznia_akcje,777

Zmieniłem więc wyświetlanie linków z takiego:
  1. filmy.php?id='.$id.'<br>';

na taki:
  1. filmy.php?title='.$title.'&podt='.$podt.'&id='.$id.'<br>';



Gdzieś na Forum ktoś polecił stronę generateit.net, gdzie elegancko można zobaczyć co i jak zrobić. Skopiowałem więc mój "nowy" link i oczywiście wyszły mi krzaczki:
  1. www.moj_serwer.pl/test/filmy.php?title=07%20zg%B3o%B6%20si%EA&podt=Odc.%201%20-%20Major%20op%F3%BCnia%20akcj%EA&id=777



Zarysowałem mniej więcej sprawę, więc teraz pojawiają się kłopociki:
1. Polskie "ogonki" - zamienić je w samym skrypcie, czy też w .htaccess ?
Jakie rozwiązanie jest lepsze?

2. Inne znaki (spacje, kropki, nawiasy kwadratowe, pytajniki, wykrzykniki itp... itd...):
jak sobie z nimi poradzić? Bo raczej nie muszą (nie powinny?) być w adresie...

3. Grubsza sprawa. Czy muszę ustawić każdy odcinek w .htaccess (a baza liczy coś około 6000 odcinków), czy też jest jakaś metoda "uniwersalna" (jedna linia), że np. pobierając tytuł, podtytuł oraz id, plik .htaccess sam będzie "potrafił" przerobić każdy tytuł?

4. Kolejna sprawa to wujek Google. Wyszukiwarki już kierują do szukanych odcinków, a tu nagle będą "nowe" adresy i skąd wujek Google ma wiedzieć, że one są? Ktoś w Googlach kliknie na stary adres (który do tej pory kierował do konkretnego odcinka), a teraz, jak ktoś kliknie, to wywali go na moją str główną...


Bardzo proszę o pomoc. Zacząłem i szkoda by było...
Być może pytań będzie jeszcze więcej, ale przynajmniej wszystko będzie w jednym miejscu (dla potomnych smile.gif ). Choćby to, czy ma to sens, jeśli chodzi o SEO (byłem na stronach, gdzie arty pochodziły nawet z roku 2006...).

Z góry bardzo dziękuję za wszelkie (p)odpowiedzi.

Pozdrawiam!
Go to the top of the page
+Quote Post
bostaf
post 24.05.2017, 14:57:53
Post #2





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Cytat(roobik @ 17.05.2017, 12:46:49 ) *
1. Polskie "ogonki" - zamienić je w samym skrypcie, czy też w .htaccess ?
Jakie rozwiązanie jest lepsze?
Najlepiej by było w bazie. Generalnie taki skrócony tytuł artykułu nazywa się slug. Robisz w podstawowej tabeli opisującej arytuły, czyli u Ciebie filmy/odcinki seriali, kolumnę "slug" i na etapie tworzenia nowego wpisu generujesz sluga.

Cytat(roobik @ 17.05.2017, 12:46:49 ) *
2. Inne znaki (spacje, kropki, nawiasy kwadratowe, pytajniki, wykrzykniki itp... itd...):
jak sobie z nimi poradzić? Bo raczej nie muszą (nie powinny?) być w adresie...
Litery ze znakami diakrytycznymi zastąpić odpowiednimi alfanumerami z zakresu [a-z1-9]. Spacje zastąpić myślnikami. Pozostałe znaki usuwać. Np: "Odc. 1 - Major opóźnia akcję" -> odc-1-major-opoznia-akcje. Nikt sie nie wczytuje w urle. Chodzi tylko o to, żeby były w miarę semantyczne i zrozumiałe. Tu trochę działa podświadomość i intuicja wzrokowa, gramatyka/ortografia się nie liczy.

Cytat(roobik @ 17.05.2017, 12:46:49 ) *
3. Grubsza sprawa. Czy muszę ustawić każdy odcinek w .htaccess (a baza liczy coś około 6000 odcinków), czy też jest jakaś metoda "uniwersalna" (jedna linia), że np. pobierając tytuł, podtytuł oraz id, plik .htaccess sam będzie "potrafił" przerobić każdy tytuł?
.htaccesem się w ogóle nie przejmuj. Tak jak wyżej napisałem - slugi do bazy.

Cytat(roobik @ 17.05.2017, 12:46:49 ) *
4. Kolejna sprawa to wujek Google. Wyszukiwarki już kierują do szukanych odcinków, a tu nagle będą "nowe" adresy i skąd wujek Google ma wiedzieć, że one są? Ktoś w Googlach kliknie na stary adres (który do tej pory kierował do konkretnego odcinka), a teraz, jak ktoś kliknie, to wywali go na moją str główną...

Google przeindeksuje. Ale starymi linkami to rzeczywiście Ty musisz się zająć. I to by już trzeba regułkami w htaccess zrobić. I ja bym tu bazował na ID filmu/odcinka. Ja bym proponował żebyś zmienił swoje założenie urla z
www.moj_serwer.pl/07_zglos_sie/Odc._1_-_Major_opoznia_akcje,777
na
www.moj_serwer.pl/123/07-zglos-sie/777/odc-1-major-opoznia-akcje

Taki url bez problemu skomponujesz w routerzee każdego frameworku i bez frameworka też. I taki url pozwoli Ci łatwo skomponować regułkę w htaccess przekierowującą ze starego na nowy url.

Patrz też: php slugify
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: 14.08.2025 - 11:34