Seite 1 von 1

rewrite-Frage

Verfasst: 13.09.2011, 07:33
von conny2540
Ich bin leider ein totaler dummie in Dingen .htaccess, deshalb stelle ich auch eine ganz simple Frage:

wie kann ich solche Links:

/r-*

an eine 403 Seite weiterleiten. Ich hatte mal ein Modul installiert, welches mit jetzt massenweise DC liefert. Ich möchte dass Google alle Links

/r-produktbewertung bzw. /r-8765, usw.

löscht und mich nicht weiter abbestraft.

Wie muss der code da heissen ?

Verfasst:
von

Verfasst: 13.09.2011, 09:12
von Synonym
ungetestet, sollte aber funktionieren.

Code: Alles auswählen

RewriteCond %{REQUEST_URI} ^/r-
RewriteRule ^ - [F]
Cond: Wenn die URI beginnt (^) mit "/r-" ,
Rule: dann mit Forbitten (403 [F]) beantworten.

Verfasst: 13.09.2011, 10:48
von conny2540
Hallo, danke. Ich habe es mal für die web.config umgeschrieben. Mal sehen was google dazu sagt...

Ich verstehe leider noch immer nicht diese rules... wo bleibt da der Wildcard * ? Gibt es irgendwo ein leicht verständliches Tutorial für .htaccess ? Das ist alles so unlogisch für mich.

Verfasst:
von

Verfasst: 13.09.2011, 11:04
von Synonym
Das ist auch weniger .htaccess als RegExp

Das Wildcard könntest Du schreiben als "^/r-.*", was aber genau das gleiche bedeutet wie meines, denn ein .* ist "irgendwas" oder "nichts". Die Conds prüfen ohnehin selbständig auf Bestandteile, somit ist das .* überflüssig.

Wenn schon ein "Wildcard", dann ein .+, denn da kann irgendwas kommen, es muss aber auch mindestens ein Zeichen kommen.

So, und wenn man den "Inhalt" des Wildcard möchte, dann muss man den in () packen, also etwa (.+). Ist hier aber nicht erforderlich, da Dich der Wert ja gar nicht interessiert, sondern nur, ob es mit "/r-" anfängt.

Das ^sagt nur aus, dass die URI mit dem nachfolgenden Zeichen beginnen muss, also dem /

wäre das ^ nicht da, dann könnte das /r- irgendwo stehen, also auch ein Unterordner eines Unterordners sein.

Im Gegensatz dazu wäre ein $ dafür da, dass der String mit dem Zeichen davor aufhören muss.

^/r-.*$ wäre also das Gleiche. Nur so gesehen unfug, da .* beliebig und etwas das beliebig ist endet auch beliebig, womit das $ überflüssig ist.

Und das "RewriteRule ^ - [F]" ist dann eben nur die eigentliche Rule, die Cond ist ja nur eine Vorabbedingung. Also die Rule sagt dann, wenn die Cond erfüllt ist. Alles was nun durchkommt mit Forbitten beantworten (Flag F). oder eben Flag G für Gone oder oder oder

Ist kein Hexenwerk

https://httpsd.apache.org/docs/2.0/mod/mod_rewrite.html
https://httpsd.apache.org/docs/2.0/mod/ ... writeflags
https://httpsd.apache.org/docs/2.0/misc ... guide.html

Oder allgemein auch hier:
https://www.modrewrite.de/
https://www.modrewrite.de/mod-rewrite/syntax/

Verfasst: 14.09.2011, 09:41
von conny2540
Danke für die ausführliche Erklärung und die Links. Ich werde es mir mal zu Herzen nehmen diese "Hexenküche" zu verstehen... Für mich alles Chinesische Zeichen...
Da ist eine Syntax von einer PHP oder SQL viel einfacher zu kapieren...

Das mit dem Apache-Dokumenten (auch im Link) verstehe ich schon mal garnicht. Aber der Link für die .de Seite ist schon brauchbarer für mich...

Verfasst: 14.09.2011, 09:47
von Synonym
Aber auch in PHP und SQL gibt es RegExp und das ist eben genau das Gleiche - eben die von Dir so nett genannten "Chinesischen Zeichen" ;-)

Die Apache-Doku ist umfangreich, aber dort gibt es viele Beispiele. Insbesondere für den Bereich Rules und Conds. Aber auch für die Syntax.

Die .de ist ähnlich, legt aber größeren Wert auf die Syntax, also das RegExp.