Empfehlungen: Erweiterte Suche

Pagination erzeugt Duplicate Content URLs

Ausgabedaten formatieren und darstellen

Pagination erzeugt Duplicate Content URLs

Beitragvon PeterPansn » Di 26. Mai 2009, 17:32

Hola!

CakePHPs Pagination ist toll, aber erzeugt leider Duplicate Content.

Code: Alles auswählen
echo $paginator->numbers();


...zeigt die Seitennavigation an wie z.B. 1 | 2 | 3 | 4.
Dabei führt der Link zu Seite 1 aber z.B. auf /categories/page:1 statt auf /categories

Für Google bedeutet dies, dass unter zwei URLs der gleiche Inhalt zu finden ist, also Duplicate Content.

Gibt es eine Möglichkeit, das zu vermeiden?
Benutzeravatar
PeterPansn
 
Beiträge: 5
Registriert: Di 26. Mai 2009, 17:27
Wohnort: Hamburg
CakePHP-Version: 1.2
OS: OS X

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon havanna » Di 26. Mai 2009, 19:53

Hallo Peter,

siehe Routing-Funktion:

Code: Alles auswählen
    Router::connect('/categories/page:1', array('controller' => 'categories', 'action' => ''));


Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon PeterPansn » Di 26. Mai 2009, 21:27

Danke Thomas, aber das löst mein Problem nicht.

Es geht darum, dass der Link zu Seite 1, welcher durch Cake's $paginator->numbers() generiert wird, auf /categories/page:1 und nicht auf /categories linkt.

Das heisst, es existieren zwei URLs mit gleichen INhalten: /categories und /categories/page:1.
Mit dem Routing kommt leider auch nur wieder das gleiche dabei raus :?
Benutzeravatar
PeterPansn
 
Beiträge: 5
Registriert: Di 26. Mai 2009, 17:27
Wohnort: Hamburg
CakePHP-Version: 1.2
OS: OS X

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon PeterPansn » Di 26. Mai 2009, 21:28

Benutzeravatar
PeterPansn
 
Beiträge: 5
Registriert: Di 26. Mai 2009, 17:27
Wohnort: Hamburg
CakePHP-Version: 1.2
OS: OS X

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon Jörg » Di 26. Mai 2009, 21:31

Moin Moin nach Hamburg,
ich glaube da wirst du so keine Lösung finden ...

Schreibe dir doch eine .htaccess Regel, die alle Paginator-Systeme mit der ":page1" per 301 Redirect umleitet ...

Gruß
Jörg
Jörg
 
Beiträge: 132
Registriert: Di 13. Mai 2008, 13:45
Wohnort: Bremen
CakePHP-Version: 2.0.3, 1.3.x
OS: Win7/Ubuntu

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon PeterPansn » Di 26. Mai 2009, 21:45

Danke, das wäre eine Lösung. Schöner scheint es nicht zu gehen...ich hatte auf einen $options parameter oder so gehofft.
Die $paginator->prev() und ->next() Links werden ja auch automatisch deaktiviert, falls es am entsprechenden Ende nicht weiter geht...
Benutzeravatar
PeterPansn
 
Beiträge: 5
Registriert: Di 26. Mai 2009, 17:27
Wohnort: Hamburg
CakePHP-Version: 1.2
OS: OS X

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon havanna » Di 26. Mai 2009, 23:20

Hallo Peter,

eine andere Möglichkeit wäre den Paginator zu überdefinieren. Schau' mal unter Tutorials und Snippets ich habe da ein PDF verlinkt weil ich auch mal dazu gezwungen war.

ciao thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon PeterPansn » Mi 27. Mai 2009, 08:52

Danke, das schau ich mir mal an. Wäre ja schön, wenn das beim nächsten Cake Update generell gefixt wird :?
Benutzeravatar
PeterPansn
 
Beiträge: 5
Registriert: Di 26. Mai 2009, 17:27
Wohnort: Hamburg
CakePHP-Version: 1.2
OS: OS X

Re: Pagination erzeugt Duplicate Content URLs

Beitragvon euromark » Mi 27. Mai 2009, 11:22

__pagingLink() müsste dazu leicht angepasst werden


ach ja:

seitdem es den neuen paginator helper gibt, hab ich auch nicht mehr meine schöne visuelle Anzeige von "sortiert ASC/DESC" als Pfeilchen via css styles...

Bsp ("geändert absteigend"):
bsp.jpg
bsp.jpg (22.15 KiB) 174-mal betrachtet


weiß jemand wie man das im neuen Helper einbauen kann?

im alten war meine Modifikation (schade, dass dies nicht nativ vorhanden ist...) die folgende:
Code: Alles auswählen

...
        if (strpos($key, '.') !== false) {
            list($model, $key) = explode('.', $key);
            $model = $model . '.';
        }
       
        /** CORE-HACK 2008-12-10 ms | Improved CSS-Styling Options within Pagination **/
        if ($this->sortKey($options['model']) == $key) {
            $options['class'] = 'sortKeyActive';
            if($this->sortDir($options['model']) == 'desc') {
                $options['class'].= ' sortDirDesc';
            } else {
                $options['class'].= ' sortDirAsc';
            }
        }
        /** CORE-HACK END **/      
       
        if ($this->sortKey($options['model']) == $key && $this->sortDir($options['model']) == 'asc') {
            $dir = 'desc';
        }
...
 
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows


Zurück zu Views

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast