Zur Navigation

Bestimmtem URL Inhalt ein 404 zuweisen

1 Detlef (Gast)

Hallo Jörg, Hallo Forengemeinde

Ich habe folgendes Problem:
In der URL www.beispiel.de/index.php/products_id/12446 wird aus bisher ungeklärten Gründen eine Seite aufgerufen, die so nicht auf dem Server vorhanden ist aber kein 404 zurück gegeben. Vermutlich durch einen Programmierfehler, holt sich nun aber Google jede Seite dieser Art in den INDEX. Ich habe bereits über die robots.txt das spidern diesbezüglich mit Disallow: /index.php/products_id/ eingeschränkt.
Ich möchte jetzt aber möglichst über .htaccess einen permanenten korrekten 404 senden, sobald die URL genau in der Form www.beispiel.de/index.php/products_id/XXXX aufgerufen wird. Das XXX entspricht einer ID (Ziffer) die von 0 - unendlich reichen kann.
Wie kann ich das praktizieren? Modrewrite ist möglich und aktiv.

Lieben Gruß
Detlef

07.01.2010 02:37

2 Jörg

Mit Modrewrite könnte das so funktionieren:

RewriteEngine on
RewriteCond index.php/products_id/[0-9]+$ - [G]

Das Flag [G] produziert ein 410 "Gone" (das ist gleichwertig, wenn nicht sogar besser als ein 404er)

07.01.2010 10:53

3 Detlef (Gast)

Vielen vielen Dank!

Gruß
Detlef

07.01.2010 13:35

4 Forum

4 Beiträge aus diesem Thread wurden in einen neuen Thread verschoben:

Weiterleitung mit 301

14.01.2010 22:41

... 1 Jahr und 9 Monate später ...

5 Detlef (Gast)

Hallo Jörg,

ich muß Dich leider wieder einmal mit einer Frage "belästigen" ...
Folgender Sachverhalt:
Durch einen Umzug mit gleichzeitiger Umstrukturierung muß ich einíge Leichen bekämpfen.
Diese liegen in der Form:
www.example.com/search.php/key/XXXXX/desc/2
bei den Suchmaschinen vor. Leider sendet mein Server keinen 404 oder besser 410er Header.
Ich möchte allerdings, dass er genau das tut. Das XXXX in der URI kann sowohl aus Ziffern, aus GROSS und kleinbuchstaben als auch alles zusammen mit Leerzeichen beeinhalten. Meine Idee das mit:
RewriteRule ^search\.php/key/([A-Z][a-z][0-9]+)/desc/([0-9]+)$ - [G]
zu lösen bringt nur bedingt Erfolg. Wie muß die Regel aussehen, um alle o.g. Möglichkeiten abzudecken?
Mir wäre auch Recht, wenn ich mit einer Regel alle möglichen Varianten die mit
www.example.com/search.php/
als ... search.php/ beginnen per GONE beantworten könnte.
Ich hoffe ich habe mich deutlich genug ausgedrückt? ^^

Erholsamen Sonntag, Gruß
Detlef

16.10.2011 13:10

6 Jörg

Das XXXX in der URI kann sowohl aus Ziffern, aus GROSS und kleinbuchstaben als auch alles zusammen mit Leerzeichen beeinhalten.

Der entsprechende reguläre Ausdruck dafür sollte so ausschauen:

[A-Za-z0-9\ ]+

16.10.2011 17:07 | geändert: 16.10.2011 17:09

7 Detlef (Gast)

Da war ich ja bereits nah dran ... ;-) aber eben nur nah ...

Vielen Dank Jörg, funktioniert prima!

Gruß
Detlef

16.10.2011 17:27

... 7 Monate später ...

8 Detlef_2 (Gast)

Hallo Jörg,

da bin ich wieder. ;-)

Folgendes Problem.
Ich möchte jede URL die von meinem Server angefordert wird und im String unter Parameter keywords den WERT A (einzelner Buchstabe) enthält einen 410 Fehler senden.

RewriteCond %{QUERY_STRING} ^keywords=A
RewriteRule ^index\.php - [G]

.. funktioniert aber nicht. Es kann auch vorkommen, das weitere Parameter in der URL vorhanden sind. Es soll aber definitv immer wenn keyword den Wer A hat ein 410 gesendet und auf index.php umgeleitet werden.
Bsp. URL -> http://www.example.org/search_result.php?searchOnemobil=1&keywords=A&page=12
Auch in diesem Fall soll ein 410 gesendet und umgeleitet werden.

Bei http://www.example.org/search_result.php?searchOnemobil=1&keywords=A1&page=12

oder

http://www.example.org/search_result.php?searchOnemobil=1&keywords=Auto&page=12677

dagegen nicht.

Hast Du eine Lösung? Danke schon einmal vorab!

Gruß
Detlef

30.05.2012 20:10

9 Jörg

Mit dem ersten Begrenzungszeichen ^ legst du fest, dass der Query String mit dem Parameter keywords=A beginnt. Wenn der Parameter auch weiter hinten im Query String vorkommen soll, musst du das ^ weglassen.

30.05.2012 21:37

10 Detlef_2 (Gast)

Hallo Jörg,

auch das weglassen des ^ bringt keinen Erfolg. Der Aufruf bleibt ohne Folgen. Der Header sendet einen 200er und die Seite wird nicht umgeleitet. :(

Gruß
Detlef

31.05.2012 16:22