Gelöschte Artikel

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
HadleyB
Regular
Posts: 837
Joined: Sat Feb 11, 2006 11:47 pm

Gelöschte Artikel

Post by HadleyB »

Hi!

Noch eine Frage: Da ich gerade fast 25 Artikel gelöscht habe, zeigen die Links bei Google nun ins Leere. Es wird die Seite angezeigt mit dem Hinweis: Keine Artikel vorhanden.

Ich würde da aber lieber auf die index.php, also auf die Startseite verweisen. Wie mache ich das denn?
mfg
Hadley
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Gelöschte Artikel

Post by garvinhicking »

Hi!

Hm, das ist eine relativ interne funktion von s9y, die beim aufrufen und nichtfinden eines Artikels so eine Seite anzeigt.

Mir fallen da spontan folgende Ideen ein:

1. .htaccess URL rewriting regel schreiben die die gelöschten Artikel speziell per 301 auf die startseite leitet

2. Einbauen eines meta refreshs oder javascript weiterleitung (inkl. noscript-link) in die entries.tpl an der stelle wo "NO_ENTRIES" ausgegeben wird

3. Anstelle eines redirekts an der Stelle die {serendipity_fetchPrintEntries} smarty funktion aufrufen.


Das ist alles natürlich nicht ganz trivial, aber eine andere Lösung gibts dafür derzeit leider nicht, glaube ich.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Gelöschte Artikel

Post by yellowled »

garvinhicking wrote:Das ist alles natürlich nicht ganz trivial, aber eine andere Lösung gibts dafür derzeit leider nicht, glaube ich.
Sollte es nicht reichen (und technisch korrekter) sein, eine statische Seite als 404-Seite zu definieren? Das kann das Plugin Statische Seiten doch ab Werk. Aus meiner Sicht ist es zumindest kein 301 – der Inhalt ist ja nicht "temporarily moved" (301), er ist weg.

YL
HadleyB
Regular
Posts: 837
Joined: Sat Feb 11, 2006 11:47 pm

Re: Gelöschte Artikel

Post by HadleyB »

Danke für Eure Vorschläge:

Ich habe "errorDocument 301" in die htaccess eingetragen: Funktioniert nicht!

Aber auch die eingetragene "error 404" scheint nicht zu funktionieren, denn es zeigt laut htaccess zwar auf die Startseite, es wird aber anderer Artikel angezeigt (der Tagesblubb, was jetzt nicht sooo schlimm ist):

http://www.hadley.de/cms/test.htm

Die 404-Regel in den Statischen Seiten funktioniert demnach auch nicht, da diese Regel in der Statischen Seite "Willkommen" (das ist die Startseite) aktiviert ist.

Seit Neuem steht das hier in der htaccess:
ErrorDocument 404 /cms/index.php
DirectoryIndex /cms/index.php
Options -MultiViews

RewriteEngine On
RewriteBase /cms/
RewriteRule ^serendipity_admin.php serendipity_admin.php [NC,L,QSA]
RewriteRule ^((archives/([0-9]+)-[0-9a-z\.\_!;,\+\-\%]+\.html)/?) index.php?/$1 [NC,L,QSA]
RewriteRule ^(authors/([0-9]+)-[0-9a-z\.\_!;,\+\-\%]+) index.php?/$1 [NC,L,QSA]
RewriteRule ^(feeds/categories/([0-9;]+)-[0-9a-z\.\_!;,\+\-\%]+\.rss) index.php?/$1 [NC,L,QSA]
RewriteRule ^(feeds/authors/([0-9]+)-[0-9a-z\.\_!;,\+\-\%]+\.rss) index.php?/$1 [NC,L,QSA]
RewriteRule ^(categories/([0-9;]+)-[0-9a-z\.\_!;,\+\-\%]+) index.php?/$1 [NC,L,QSA]
RewriteRule ^archives([/A-Za-z0-9]+)\.html index.php?url=/archives/$1.html [NC,L,QSA]
RewriteRule ^([0-9]+)[_\-][0-9a-z_\-]*\.html index.php?url=$1-article.html [L,NC,QSA]
RewriteRule ^feeds/(.*) index.php?url=/feeds/$1 [L,QSA]
RewriteRule ^unsubscribe/(.*)/([0-9]+) index.php?url=/unsubscribe/$1/$2 [L,QSA]
RewriteRule ^approve/(.*)/(.*)/([0-9]+) index.php?url=approve/$1/$2/$3 [L,QSA]
RewriteRule ^delete/(.*)/(.*)/([0-9]+) index.php?url=delete/$1/$2/$3 [L,QSA]
RewriteRule ^(admin|entries)(/.+)?$ index.php?url=admin/ [L,QSA]
RewriteRule ^archive/? index.php?url=/archive [L,QSA]
RewriteRule ^(index|atom[0-9]*|rss|b2rss|b2rdf).(rss|rdf|rss2|xml) rss.php?file=$1&ext=$2
RewriteRule ^(plugin|plugin)/(.*) index.php?url=$1/$2 [L,QSA]
RewriteRule ^search/(.*) index.php?url=/search/$1 [L,QSA]
RewriteRule ^comments/(.*) index.php?url=/comments/$1 [L,QSA]
RewriteRule ^(serendipity\.css|serendipity_admin\.css)$ index.php?url=/$1 [L,QSA]
RewriteRule ^index\.(html?|php.+) index.php?url=index.html [L,QSA]
RewriteRule ^htmlarea/(.*) htmlarea/$1 [L,QSA]
#RewriteCond %{REQUEST_URI} !-U
RewriteRule (.*\.html?) index.php?url=/$1 [L,QSA]
Kann man da vielleicht was eintragen?
mfg
Hadley
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Gelöschte Artikel

Post by garvinhicking »

Hi!
Ich habe "errorDocument 301" in die htaccess eingetragen: Funktioniert nicht!
Ja, das war ja auch nicht Teil irgendeines Vorschlags. :-)

Leider klappt das mit YellowLEDs vorschlag nicht, die 404.tpl (und damit statische startseiten) werden soweit ich weiß nur aufgerufen wenn auch die default serendipity "seite nicht gefunden"-seite angezeiugt würde; in dem fall ist es aber eine "eintrag nicht gefunden"-seite, das ist KEINE 404 Seite.

Es geht also tatsächlich nur einer meiner 3 Vorschläge...also RewriteRules für die gelöschten Artikel einfügen.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
HadleyB
Regular
Posts: 837
Joined: Sat Feb 11, 2006 11:47 pm

Re: Gelöschte Artikel

Post by HadleyB »

Spezielle Umleitung jedes Artikels bedeutet dann aber: Ich hätte VOR dem Löschen die Links suchen und angeben müssen. Das ist jetzt leider zu spät. :(

Mit den anderen Optionen kenne ich mich leider nicht aus und ich schreibe auch keinen Code mehr um. Wenns mir den Blog wieder zerbröseln, springe ich aus dem Fenster :-)

Die Regeln in der htacess funktionieren nur für fehlende PHP-Dateien, da wird dann korrekt auf die Startseite umgeleitet:

http://www.hadley.de/cms/test.php

Ich habe eine "statische Seite" als Startseite definiert und dort auf "diese Seite als 404" markiert. Gibt jemand aber HTML ein, wird auf einen Artikel verlinkt, nicht auf die (statische) Startseite:

http://www.hadley.de/cms/test.htm
http://www.hadley.de/cms/test.html

Das kann man doch sicher in der vorhandenen htaccess auch noch anpassen?
mfg
Hadley
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Gelöschte Artikel

Post by garvinhicking »

Hi!
Mit den anderen Optionen kenne ich mich leider nicht aus und ich schreibe auch keinen Code mehr um. Wenns mir den Blog wieder zerbröseln, springe ich aus dem Fenster :-)
Jo, okay. Dann kann man nix machen. :-)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
ju
Regular
Posts: 50
Joined: Wed Oct 01, 2008 4:27 pm

Re: Gelöschte Artikel

Post by ju »

HadleyB wrote:Spezielle Umleitung jedes Artikels bedeutet dann aber: Ich hätte VOR dem Löschen die Links suchen und angeben müssen. Das ist jetzt leider zu spät. :(
Wenn Du nicht gerade Tausende Artikel hast, dann kannst Du doch einfach im Admin unter "Artikel bearbeiten" nachschauen, welche IDs rausfehlen.
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Gelöschte Artikel

Post by Timbalu »

...oder Tante Google fragen.,., die weiß alles! :wink:
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
HadleyB
Regular
Posts: 837
Joined: Sat Feb 11, 2006 11:47 pm

Re: Gelöschte Artikel

Post by HadleyB »

Der Artikel ist zwar schon älter, aber vielleicht möchte noch jemand die Lösung wissen, die ich nun gefunden habe.

Wenn man einen Artikel gelöscht hat und von außen darauf zugegriffen wird, erscheint ja der Text "Keine Einträge vorhanden".

Diese Phrase steht in der Datei serendipity_lang_de.inc.php im Verzeichnis lang und auch in lang/UTF8/. Dort kann man den Text ändern und eigen eigenen Text einfügen. Das sieht dann so aus: http://goo.gl/dH9li.
mfg
Hadley
bernd_d
Regular
Posts: 468
Joined: Thu Jun 03, 2010 9:28 am
Contact:

Re: Gelöschte Artikel

Post by bernd_d »

Wirklich toll ist die Lösung mit der Sprachvariable aber bei weitem nicht, da man das bei jedem Update neu machen müsste. Viel einfacher ist es über das Plugin serendipity_event_staticpage und einer entsprechenden statischen Seite, die als 404-Ausgabe festgelegt wird. Siehe beiliegenden Screenshot zur Verdeutlichung.
Attachments
2013-03-08 08 13 34.png
2013-03-08 08 13 34.png (153.17 KiB) Viewed 5927 times
konus
Regular
Posts: 334
Joined: Mon Jun 16, 2008 1:57 pm
Location: Dresden, Germany
Contact:

Re: Gelöschte Artikel

Post by konus »

Ich habe dazu eine Frage: Genau so habe ich es gemacht. Statische Seite angelegt und diese Option markiert. Wann soll die Fehlerseite dann ausgeworfen werden? Bei mir kommt nach wie vor bei Fehlern kommentarlos die Startseite.
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Gelöschte Artikel

Post by Timbalu »

Beispiel ohne staticpages:
In .htaccess: ErrorDocument 404 /your/path/my404.html
Warum geht diese deklarierte ..404.html nicht alleine?
Weil s9y im mod_rewrite modus den 404 error handler selber belegt.
Aber man kann einen switch in die content.tpl

Code: Select all

 {if $view == '404'}
 ... hier dein HTML Markup für die Fehlerseite ...
 {else}
 ... hier der normale content.tpl Inhalt...
 {/if}
einbauen.

Davon unabhängig geht aber nichtsdestotrotz die subpage Geschichte für fehlerseiten ohne html!
ErrorDocument 404 /your/path/index.php?serendipity[subpage]=my404

Installiere dir nur zusätzlich dieses Plugin. Der "my404" Name ließe sich natürlich beliebig anpassen.

Code: Select all

<?php
/*****
 Hints: 
*****/

class serendipity_event_404hook extends serendipity_event {
    function introspect(&$propbag) {
        global $serendipity;

        $propbag->add('name',          '404 hook');
        $propbag->add('description',   'Add an individual error page. Do not forget to change your ErrorDocument 404 /page!');
        $propbag->add('requirements',  array('serendipity' => '1.5', 'smarty' => '2.6.7', 'php' => '4.1.0'));
        $propbag->add('version',       '0.1');
        $propbag->add('author',        'Garvin Hicking');
        $propbag->add('event_hooks',   array('entries_header' => true));
    }

    function event_hook($event, &$bag, &$eventData, $addData = null) {
        global $serendipity;

		/*if ($event == 'entries_header' && ( preg_match('@index.php\?serendipity\[subpage\]=404@i', $_SERVER['REQUEST_URI']) || $GLOBALS['serendipity']['GET']['subpage'] == '404') ) {*/
        if ($event == 'entries_header' && (preg_match('@/my404.html@i', $_SERVER['REQUEST_URI']) || $GLOBALS['serendipity']['GET']['subpage'] == 'my404')) {
            serendipity_header('HTTP/1.0 404');
            serendipity_header('Status: 404 Not Found');
        }

        return true;
    }
}
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
yellowled
Regular
Posts: 7111
Joined: Fri Jan 13, 2006 11:46 am
Location: Eutin, Germany
Contact:

Re: Gelöschte Artikel

Post by yellowled »

Timbalu wrote:Aber kann man einen switch in die content.tpl

Code: Select all

 {if $view == '404'}
 ... hier dein HTML Markup für die Fehlerseite ...
 {else}
 ... hier der normale content.tpl Inhalt...
 {/if}
einbauen.
Das ist aber es in den meisten Templates nicht updatesicher, weil es in die index.tpl eingefügt werden muss.

Ich denke, wir sollten uns für 2.0 eine deutlich bequemere Lösung einfallen lassen. Die ursprüngliche Begründung für das Handling von 404-Fehler in S9y finde ich persönlich ungünstig:
Die Standard-Übersicht wird dargestellt, damit Besucher des Blogs dazu motiviert werden, sich über die restlichen Inhalte des Blogs schnell einen Überblick zu verschaffen, anstatt nur eine leere, nichtssagende Fehlermeldung zu sehen.
Die Lösung, eine statische Seite als 404-Seite zu verwenden, finde ich akzeptabel, aber nicht optimal, weil sie dem Blogger unnötige Arbeit macht. (Zudem funktioniert es bei Konrad scheinbar nicht, ist also potenziell fehleranfällig.)

Einen 404-Text kann man sehr gut in eine Sprachkonstante packen. Dazu würde ich im Text der 404-Seite noch einen Link zur Startseite unterbringen und eventuell zusätzlich im Inhaltsbereich das Suchformular ausgeben. Das ist ein recht typisches 404-Seiten-Schema – „Ups, die Seite existiert leider nicht, weil $BLAFASEL, aber hier geht's zurück zur Startseite und eventuell findest Du ja über die Suche, was Du gesucht hast.“

Das Problem ist ja, dass das Verhalten: „404 - zurück zur Startseite“ völlig ungewohnt ist für den Besucher. Das irritiert zusätzlich.

YL
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: Gelöschte Artikel

Post by Timbalu »

yellowled wrote:Das ist aber es in den meisten Templates nicht updatesicher, weil es in die index.tpl eingefügt werden muss.
Nö! Die content.tpl ist genau der richtige Platz dafür. Damit faked man eine statische Seite.
Außerdem predigen wir schon immer kein Originaltemplate zu verwenden, sondern eine "Kopie" zu nutzen. Dann ist das auch völlig updatesicher. (Das gilt natürlich nur, wenn das Template eine content.tpl hat. Man könnte sich in diesem Falle die vom default/ fallback bzw BP, oder bald auch 2k11 hineinkopieren und editieren. Aber selbst eine manipulierte index.tpl wäre im Falle der Template-Kopie update sicher.)

Wenn man das nur über staticpages macht, müsste wahrscheinlich der Permalink der Seite auch in die htaccess als ErrorDocument 404 redirect eingetragen werden, wenn mod_rewrite benutzt wird.
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Post Reply