Seite 1 von 2

URLs bzw. Keywörter in URLs via .htaccess sperren?

Verfasst: 11.01.2010, 12:32
von XTCXTC
Hi,

ich habe da ein Problem bei dem ich nicht so richtig weiter komme:

In einigen unserer URLs werden Keywörter bzw. Suchbegriffe verwendet, nun muss ich aber einige Begriffe sperren und suche daher eine gute .htaccess Lösung.

Das Keywort sollte als einzelnes oder in einer Wort-Verbindung gesperrt werden.

Bsp: Suchbegriff "Auto" soll im System gesperrt werden, aber auch alle möglichen Wort-Verbindungen wie z.b. "Autobahn" oder "neues-Auto" oder "altes Auto" aber auch z.b. "neues-Auto-fahren" etc. - eben das alle Begriffe welche "Auto" enthalten gesperrt sind!


Ist sehr dringend, währe daher auch mehr als Dankbar wenn mir hierbei jemand helfen könnte


Mario

Verfasst:
von

Verfasst: 11.01.2010, 12:38
von Synonym
Und wie kommen die Keywörter in die URL?

Vergleiche die doch mit vorgegebenen Werten aus der DB und werte das dann aus. Per .htaccess einfach alles zu blockieren was "Auto" beinhaltet finde ich mehr als nur unschön.

Was ist mit Autoren, Automatik, Grauton etc...? Also Wörtern die Auto beinhalten, aber nichts mit KFZ zu tun haben?

danke

Verfasst: 11.01.2010, 12:45
von XTCXTC
Danke für die Antwort.
Das Wort "Auto" war mehr oder weniger nur ein Beispiel, es handelt sich hierbei natürlich um speziellere Begriffe die aus dem System ganz raus müssen, auch in Wortverbindungen welche nicht direkt verwand mit dem Hauptwort sind.
Ja, die Keywörter kommen aus der DB - da sind diese auch schon raus, Problem dabei nur das die Suchmaschinen bereits alles ausgelesen und indiziert haben.
Der Content wird mit dem Suchbegriff in der URL erzeugt, also würde meiner Meinung nach nur eine Sperre via .htaccess 100%tig funktionieren.

Danke

Mario

Verfasst:
von

Verfasst: 11.01.2010, 13:01
von Synonym
Hm, ist für mich mit Kanonen auf Spatzen schießen. Warum das dann nicht einfach mit PHP als Fehlerseite ausgeben, wenn es die Keys in der DB nicht mehr gibt? Leuchtet mir irgendwie nicht ein.

Aber so in etwa könnte es aussehen (ungetestet)
RewriteEngine on
RewriteCond %{REQUEST_URI} keyword [OR]
RewriteCond %{QUERY_STRING} keyword
RewriteRule ^ - [F]
https://www.modrewrite.de/foren/ftopic7049.html

;-)

Verfasst: 11.01.2010, 13:05
von XTCXTC
Die einzelnen Unterseiten fragen nicht die Datenbank ab, diese sind durch Links erzeugt wurden, der Content wird durch das Keywort in der URL entsprechend generiert. Daher laufen die URLs noch weiter obwohl die Wörter aus der Datenbank raus sind.

Danke für deine Mühe, werde gleich mal testen ;-)


Mario

Verfasst: 11.01.2010, 13:07
von Garfield
Idee (bin aber kein PHP-Fachmann):

Wenn das bestimmte Worte sind, dann liest du die doch wahrscheinlich in einem Script wieder aus.

Wenn du nun an den Anfang deiner "Auslesedatei" eine Abfrage machst nach dem Schema:

Code: Alles auswählen

if Keyword = Auto
die();
oder Weiterleitung auf eine "Dieser Begriff ist hier verboten"-Seite...

Könnte gehen?

Verfasst: 11.01.2010, 13:09
von Synonym
der Content wird durch das Keywort in der URL entsprechend generiert. Daher laufen die URLs noch weiter obwohl die Wörter aus der Datenbank raus sind.
Ah verstehe.... Also dynamischer Content aus beliebigen Usereingaben die dann nicht mehr geprüft werden. Was machst Du eigentlich wenn das einer merkt und dann ein wenig außerhalb der Legalität verwendet? Ich will nur sagen, DU bist für Deine Webseiten und Inhalte verantwortlich, auch wenn der Content durch zufällige Wörter in der URL entsteht.

@Garfield
Stichwort strpos()

Verfasst: 11.01.2010, 13:26
von XTCXTC
Garfield hat geschrieben:Idee (bin aber kein PHP-Fachmann):

Wenn das bestimmte Worte sind, dann liest du die doch wahrscheinlich in einem Script wieder aus.

Wenn du nun an den Anfang deiner "Auslesedatei" eine Abfrage machst nach dem Schema:

Code: Alles auswählen

if Keyword = Auto
die();
oder Weiterleitung auf eine "Dieser Begriff ist hier verboten"-Seite...

Könnte gehen?
Danke, Problem dabei ist das es sich um mehrere Dateien handelt, in diesen Dateien gibt es auch noch jeweils hunderte Varianten, müsste also um das direkt im phpcode zu sperren diese Abfrage in jeder Datei für jede mögliche Variante machen...... ;-)
War bereits mein erster Gedanke, möchte direkt mit .htaccess lösen sonst sitze ich ne Woche *lol*

Aber trotzdem Danke für deine Idee!

Verfasst: 11.01.2010, 13:34
von XTCXTC
Synonym hat geschrieben:
der Content wird durch das Keywort in der URL entsprechend generiert. Daher laufen die URLs noch weiter obwohl die Wörter aus der Datenbank raus sind.
Ah verstehe.... Also dynamischer Content aus beliebigen Usereingaben die dann nicht mehr geprüft werden. Was machst Du eigentlich wenn das einer merkt und dann ein wenig außerhalb der Legalität verwendet? Ich will nur sagen, DU bist für Deine Webseiten und Inhalte verantwortlich, auch wenn der Content durch zufällige Wörter in der URL entsteht.

@Garfield
Stichwort strpos()
Genau, hätte ich eigentlich gleich erwähnen können das es sich um dynamischen Content handelt, sorry.
Die Keywörter durchlaufen natürlich auch diverse Funktionen um zu verhindern das damit etwas auserhalb der Legalität verwendet werden kann. Aber danke nochmal für den Gedankenanstoß, werden in der Richtung auf jeden Fall nochmal nachbessern bzw. schauen ob es Lücken gibt.

Verfasst: 11.01.2010, 13:41
von XTCXTC
Synonym hat geschrieben:Hm, ist für mich mit Kanonen auf Spatzen schießen. Warum das dann nicht einfach mit PHP als Fehlerseite ausgeben, wenn es die Keys in der DB nicht mehr gibt? Leuchtet mir irgendwie nicht ein.

Aber so in etwa könnte es aussehen (ungetestet)
RewriteEngine on
RewriteCond %{REQUEST_URI} keyword [OR]
RewriteCond %{QUERY_STRING} keyword
RewriteRule ^ - [F]
https://www.modrewrite.de/foren/ftopic7049.html
Also dein Code funktioniert soweit, nur bei der Groß- und Kleinschreibung klappts noch nicht. Gibts da auch eine Lösung?

Danke

Verfasst: 11.01.2010, 14:02
von Synonym
Flags

Die Angabe von flags ist optional. Damit kann man das Verhalten der RewriteCond beeinflussen. Erlaubt sind folgende Werte:
Nr. flag Alternative Erklärung
1. NC nocase Bei String-Vergleichen wird nicht mehr zwischen Groß- und Kleinschreibung unterschieden
2. OR ornext Mit diesem Flag wird die aktuelle Bedingung mit einem logischen ODER mit der nächsten Bedingung verknüpft

Verfasst: 11.01.2010, 18:17
von Stephan Zöllner
RewriteEngine on
RewriteCond %{REQUEST_URI} keyword [OR,NC]
RewriteCond %{QUERY_STRING} keyword [NC]
RewriteRule ^ - [F]

Heißt NoCapital

Verfasst: 11.01.2010, 20:42
von catcat
Sag Deinen Usern doch mal, das sie keine Markennamen verwenden sollen.
Sag, das ich ins Schwarze getroffen hab.

Verfasst: 11.01.2010, 21:13
von Mork vom Ork
Stephan Zöllner hat geschrieben:NC heißt NoCapital
Da können wir jetzt überlegen, was am schönsten ist: Ein stramm kommunistischer Vergleich, ein Vergleich, der Hauptstädte ausschließt oder aber einer, der bei großen Buchstaben fehlschlägt …

(NC steht für no case oder, etwas länger, not case-sensitive, die Groß-/Kleinschreibung ignorierend. „No capital“ ginge in die völlig falsche Richtung.)

Verfasst: 11.01.2010, 21:59
von Stephan Zöllner
zugegeben war "etwas Unscharf" aus dem Bauch raus.