Redirect
passt Pfadpräfixe. Die folgende Redirect
entspricht einem beliebigen Pfad, der Präfix (Pfadsegment weise) ist, ist /here
und hängt es an den neuen URI:
Redirect 301 /here http://example.com
So wird jede Anforderung, Pfad ist beginnt mit /here
wird http://example.com
wile weitergeleitet Anfügen alle folgenden Pfad Suffixe /here
bis http://example.com
.
Im Gegensatz dazu funktioniert RewriteRule
mit regulären Ausdrücken. In diesem Fall wird die folgende RewriteRule
jeden Pfad übereinstimmen, die here/
enthält:
RewriteRule here/(.*) http://example.com/$1 [R=301,L]
Alles, was danach here/
wird dann auf die neue URL angehängt werden.
Während beide Direktiven beim Anfordern von URLs mit Pfaden, die mit /here
beginnen, den gleichen Effekt haben, wird auch letzterer jede Anforderung abgleichen, deren Pfad here/
wie /not/here/foo
enthält.
Des Weiteren Sie zusätzliche Bedingungen mit mod_rewrite verwenden können:
RewriteCond $0 !=here/stayhere.html
RewriteRule ^here(/.*)?$ http://example.com$0 [L,R=301]
Wenn Sie das gleiche mit mod_alias tun wollen, müssen Sie RedirectMatch
mit einem regulären Ausdruck verwenden, die alles andere als /here/stayhere.html
übereinstimmen.
Sind Sie sicher, dass das etwas mit Regex zu tun hat? – Keng
Ja ... idealmachine unten sagte, es verwendet Regex. Ist das nicht alles so abgestimmt? – gravityboy
Und Gumbo sagt, es verwendet "regulären Ausdruck" – gravityboy