Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] SEO URL w cms
Forum PHP.pl > Forum > PHP
antoniak
Witam,

Mam skrypt (cms), chciałbym dodać w nim SEO linki, teraz linki wyglądają następująca www.moja_domena.pl/news,ID.html a chciałbym to zmienić do postaci www.moja_domena.pl/news,ID,tytul_newsa.htm

w pliku news.php jest

Kod
<?php
class NEWS {
    function newsPokaz($id) {
        global $db;
        global $html;
        global $session;

        $db->query("SELECT `id`, `tytul`, `opis`, `rgt`, `inne`, `tag`,  FROM `news` WHERE `id` = '" . addslashes($id) . "' LIMIT 1");
        $row = $db->fetch();

        if(!$row[0]) {
            $html->assign('tytul', 'błąd');
            $html->assign('glowna', 'Przepraszamy, ale taki news nie został odnaleziony.');
            _finnish('otherm');
        }
};
?>


news.header.php

Kod
<?php
_registerURL('/^news,(\d*).html$/', 'news', 'newsPokaz');
?>


Nie wiem czy trzeba też edytować plik odpowiadający za wysyłania tego do bazy danych, a zarazem jak poradzić sobie z tą zmianą

Pozdrawiam i z góry dziękuję
shine
Najprosciej bedzie jak uzyjesz mod_rewrite w apache'u. Tutaj np. masz kilka przykladow: http://sf.jogger.pl/2007/05/02/mod-rewrite-w-przykladach/
antoniak
więc dodam do pliku .htaccess

Kod
RewriteRule ^dokument,(.+),([0-9]+)\.html$ index.php?a=news&id=$2
( www.przyklad.pl/news,tytul-artykulu,20.html )

to skąd pobierze ten tytuł tego newsa? na stronie mam odwołanie do pliku /index.html
erix
Możesz przecież po staremu dopisać ID i wyszukiwać. Tytuł może być wtedy dowolnym ciągiem znaków. A dopisujesz go tak, jak generujesz linki do stron.

Tylko przydałoby się jeszcze - ewentualnie - dodać sprawdzanie, czy faktycznie taki tytuł istnieje; takie zabezpieczenie przed duplicate content.
antoniak
ale gdzie dopisać ID ? tytuł chce żeby pobierało z bazy danych i dodawał ten tytuł do linka, a plik który opowiada za linki to news.header.php
erix
No to właśnie tam musisz dopisać. W ciemno jest naprawdę ciężko powiedzieć.
antoniak
niestety, ale nie jest mistrzem programistą i nie wiem co trzeba dopisać do tych dwóch plików, szukałem na innych forach ale nie były to sposoby dosyć skuteczne. Jeśli ktoś może to bardzo proszę o pomoc smile.gif
erix
Ale na to nie ma uniwersalnego rozwiązania. Wszystko zależy od skryptu.
antoniak
jeżeli w pliku news.header.php mamy
Kod
<?php
_registerURL('/^news,(\d*).html$/', 'news', 'newsPokaz');
?>

czyli to odwołuje się do news.php

Kod
<?php
class NEWS {
    function newsPokaz($id) {
        global $db;
        global $html;
        global $session;

        $db->query("SELECT `id`, `tytul`, `opis`, `rgt`, `inne`, `tag`,  FROM `news` WHERE `id` = '" . addslashes($id) . "' LIMIT 1");
        $row = $db->fetch();
erix
Ale to naprawdę niewiele mówi. Napisałem przecież:
Cytat
A dopisujesz go tak, jak generujesz linki do stron.

Czyli szukasz kodu, który generuje link w widoku.
antoniak
te linki są tylko tak generowane, nie widzę tutaj innych opcji w tym skrypcie, pobiera tylko ID newsa i mamy link

czyli nikt nie pomoże? mogę nawet zapłacić za pomoc.
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.