Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Router
Forum PHP.pl > Inne > Oceny
darecki
Witam,

Chciałbym abyście ocenili wstępnie Router: http://kotela.eu/expose-6afcfa255e9e206444dc7679fa1f0135.htm

Generalnie chcę stworzyć sobie skrypt do generowania i obsługi adresów przyjaznych dla pozycjonowania.

Przykładowy link ma wyglądać tak: http://exemple/produkt,1,0,3,jakasnazwa.html


Dla skryptu w tej fazie mam dwa wymagania:

1. Generowanie i obsługa linków przedstawionych powyżej.
2. Poprawianie adresów z starego wzorca (http://exemple/produkt/1/0/3/jakasnazwa/), którego używałem na wspomniany powyżej.

Obecnie jest to podstawa skryptu i docelowo przewiduję szersze zastosowanie.

Proszę o oceny i wskazanie ewentualnych błędów.
sowiq
Klasa spoko, przydatna i chyba w miarę dobrze napisana. Poza jednym, co rzuciło mi się od razu w oczy. Kto jeszcze stosuje funkcję ereg()?
Cytat
Note: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().


Zamień to, zanim Cię zbesztają inni winksmiley.jpg
nexis
Cytat(darecki @ 25.01.2009, 17:57:19 ) *
Przykładowy link ma wyglądać tak: http://exemple/produkt,1,0,3,jakasnazwa.html

Czy to faktycznie najbardziej przyjazny link? Zdbędna jest oczywiście końcówka .html i osobiście zamiast przecinka użyłbym / - np. http://domena.pl/wydarzenia/2009/01/25
darecki
Nie jestem specjalistą od pozycjonowania jednak ostatnio w firmie rozmawiałem z kolegą który zajmuje się pozycjonowaniem i pokazywał mi na kilku przykładach że taki trik (z końcówka .html) jest lepiej pozycjonowany. Generalnie z tego co sam wywnioskowałem np Google takie linki traktuje jako nazwy plików i lepiej indeksuje. Drugim atutem jest wygląd linku (może mało znaczące) jednak patrząc na schemat podobnego wzoru używa Onet.pl

Jednak niech w celu potwierdzenia wypowie się ktoś kto się lepiej zna na pozycjonowaniu czy takie podejście ma znaczenie w pozycjonowaniu czy nie (wiem wiem pierwsze to meta znaki, treść, słowa kluczowe itp).

Generalnie w celu ustawienia spostrzeżeń postu wyżej możemy zrobić tak:

Kod
$Router = new Router();

$Router -> setExtensionFile(''); // Usuwamy końcówkę - rozszerzenie
$Router -> setSeparatorExplode('/'); // Ustawiamy nowy separator

....
dyktek
a co ma onet do wiatraka ;p
jedyną korzyść jaką tu widzę to to, że ludzie są przyzwyczajeni do tego typu linków bo takie ma onet a dużo ludzi z oneta korzysta, no ale nie mam zamiaru bronic takiej tezy.

Stwierdzenie "rozmawiałem z kolegą od pozycjonowania i on mówił że..." jest mało warte gdyż albowiem kolega X ma kolege Y który stwierdzi, że jest inaczej. Nie widziałem analiz czy "żywych przykładów", że tak jest więc osobiście pozostanę przy linkach */*/* ...
AxZx
to, że onet coś stosuje nie znaczy, że jest to dobre. może oni tak muszą bo mają tak źle napisaną aplikacje, że ciężko byłoby teraz cokolwiek z tym zrobić biggrin.gif (żart:)

jeśli chodzi o link to wg mnie wcale nie jest on taki fajny, ani dla usera ani dla botów.
poza tym to co wpiszesz w meta tagach też nie jest aż tak istotne. istotne są linki oraz treść w Twoim serwisie.
Moli
Brak strony pod podanym linkiem do klasy smile.gif A co do formy to z tego co wiem to najlepsza forma to:
www.strona.pl/cos/cos/cos.html
ponieważ google traktuje to jako zwykły plik html w podkatalogach smile.gif
isso
Nie patrzyłem w projekt, ale tak z tego co tu widzę, a co warto zauważyć to w SEO for beginners od google jest napisane, że najbardziej przyjazne linki są:

http://domena.com/articles-120-about-new-engines.html

i było też, że "-" ma przewage nad "_" - a w ogóle to dobrze jak można ustawić sobie znak rozdzielania

(bardzo przepraszam, jeżeli czegoś nie doczytałem i napisałem takie a nie inne rzeczy, które mogą być faktami w Twoim projekcie).
darecki
Nie chodzi mi o to że Onet tworzy standardy tylko został tu przedstawiony jako przykład i koniec.
Ponieważ ja nie zajmuję się pozycjonowaniem to kogoś warto się podpytać (kogoś kto się tym zajmuje zawodowo). dyktek ciekawe czy ty jesteś tak odrazu wszech wiedzący byłeś.

Dodatkowo uważam że poruszenie takiego tematy przy tworzeniu Router jest pozytywne dla samego skryptu aby jak najbardziej zoptymalizować jego działanie pod SEO.

isso co do twojego spostrzeżenia to poczytam, jednak na szybko możliwość zmiany separatora na "-"

Kod
$Router = new Router();

$Router = new Router();

$Router -> setSeparatorExplode('-'); // Ustawiamy nowy separator

....
mkdes
1) .html - wskazuje na plik (zalecane)
2) slash w url - wskazuje na folder katalog
Czy klasa robi polskie znaki w URL'ach ?
darecki
Obecnie nie, tak jak pisałem wcześniej mam dla niej 2 wymagania. Jednak nic nie stoi na przeszkodzie aby dodać taką obsługę.
wrzasq
ja na pozycjonowaniu sie nie znam, i tez moge przedstawic jedynie tyle co moi wspolpracownicy mi przekaza, ale raczej znaja sie na rzeczy i zreszta tez czasem czytam o tego typu rzeczach, choc pobierznie i tak:
  1. na pewno lepszy jest '-' od '_' - znak myslnika/minusa rozdziela wyrazy, znak podkreslnika jest indeksowany jakos ciagly wyraz wiec 'about_new' raczej jest malo wartosciowe winksmiley.jpg.
  2. koncowka .html wskazuje na plik i to statyczny HTML przez co google lepiej traktuje takie linki sadzac, ze tresc tam jest "stabilna" (zadko zmieniana).
  3. na pewno link w stylu 0,0,2,30,1,69,666 nie da nam nic i tutaj pozycjonowaniem nie trzeba sie zajmowac, zeby to wiedziec. w linku do produktu potrzebne jest co najwyzej jego ID, plus ewentualnie numer strony jesli jego opis jest dlugi. zamiast pozostalych cyferek lepiej jest wrzucic jakies slowka. chociazby drzewo kategorii /produkty/aparaty/kompakty/sony-12mpx-zoom-optyczny-69.html
darecki
Adres już działa, przy aktualizacji domen w panelu niechcący została nieusunięta domena.

Co do uwagi na temat wstawienia w adres jeszcze katalogowania (np example/kategoria/podkategoria/produkt-123.html) uważam że jest to ciekawy pomysł i warty wdrożenia. Po weekendzie postaram się przedstawić poprawioną wersję o:

- wstawienie nazw kategorii jako foldery w adresie,
- ustawienie domyślnie separatora "-"
- obsługa parsowania znaków z np "róża" -> "roza"
bim2
Tak się zastanawiam, nie fajnieby było jakbyś mógł łatwo definiować adresy jakie mają być generowane. Dla przykładu.

Moduł `News`:
  1. <?php
  2. $aRouting[] = array('News/[cats]/[name]-[id].html', '?action=news&method=show&id=[id]', 'cats' => array('[cat]/[subcat]'));
  3. ?>

I dla powiedzmy usera chcesz troszkę inaczej smile.gif
  1. <?php
  2. $aRouting[] = array('User-[id]/[surname]/[name].html', '?action=user&method=show&id=[id]');
  3. ?>
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-2025 Invision Power Services, Inc.