Redirect alle Dateien in ein Verzeichnis, über httpd.conf / htaccess
Möchte ich umleiten...
http://old.com/a/b/-> http://new.com/y/z/
http://old.com/a/b/file.php -> http://new.com/y/z/
http://old.com/a/b/c/file.php -> http://new.com/y/z/
http://old.com/a/b/anything -> http://new.com/y/z/
http://old.com/a/b/EXCLUDE.php -> http://old.com/a/b/EXCLUDE.php
Ich habe derzeit Folgendes in httpd.conf und leitet es richtig:
RedirectMatch 301 /a/b/(.*) http://new.com/y/z/
Ich weiß nicht, so schließen Sie eine Datei umgeleitet werden.
Grundsätzlich möchte ich alle URL ' s beginnend mit "old.com/a/b/" zu gehen, um eine einzelne neue URL, außer ich möchte eine einzige URL, um ignoriert zu werden.
Nach httpd.apache.org/docs/2.0/mod/mod_alias.html, die Sie nicht brauchen, (.*); RedirectMatch ersetzt die start-URLs, so dass alles unter /a/b/ gefangen werden, sowieso. Als auf Ihre Frage, wie über das hinzufügen von 'RedirectMatch 301 /a/b/EXCLUDE.php /a/b/EXCLUDE.php" vor Ihren bestehenden Regel? Ich weiß nicht, ob es klappt, aber einen Versuch ist es Wert.
InformationsquelleAutor Elias | 2012-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit einer negativen lookahead-in dem regulären Ausdruck sollte funktionieren:
Wenn Sie möchten, den rest des Weges zu tragen über und über mit dem umleiten verwenden Sie den Rückverweis $1:
Bevor man Ihre Antwort, die ich erforscht Möglichkeiten, um zu erreichen das gleiche Ergebnis mit rewrite-Regeln. Für alle, die kommen können, über diese Frage wollen die Lösung mit den rewrite-Regeln, das scheint zu funktionieren:
RewriteEngine on
RewriteRule ^/a/b/EXCLUDE.php$ - [L]
RewriteRule ^/a/b/(.*)$ http://new.com/y/z [R=301,L]
InformationsquelleAutor mo-getter
Ich weiß es schon beantwortet, aber für Leute, die wollen einige RewriteRule Sachen:
Sollte dies funktionieren:
InformationsquelleAutor Olivier Pons