2009-05-11 8 views
0

Wie erstellt man eine Regel, die prüft, ob die eingehende Anfrage bestimmte Bedingungen hat, wenn nein, dann auf andere URL umleiten?Rewrite rule-- Wenn eine eingehende Anfrage nicht aus bestimmten Zeichen besteht, schreiben Sie sie in eine andere URL

Zum Beispiel habe ich eine Website my.example.com. Wenn die eingehende URL my.example.com/login ist, sollte sie diese Anfrage ausführen. Wenn es etwas anderes ist (nicht login), muss die Anfrage auf your.example.com umgeleitet werden. Zum Beispiel

  • my.example.com/login2 muss your.example.com/login2
  • my.example.com/nologin Umleiten zu your.example.com/nologin
  • my.example.com/getname Umleiten muss your.example.com/getname

Und natürlich umleiten muss, wenn es

ist
  • my.example.com/login m ust Umleiten zu my.example.com/login

Wie RewriteRule und mod_rewrite verwenden, um dies zu erreichen?

Antwort

0
RewriteCond %{HTTP_HOST} !^www\.myexample\.com [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/(.*)   http://www.myexample.com/$1 [L,R] 
+0

Ich glaube nicht, dass das Skript tut, was ist beabsichtigt ... zum Beispiel sehe ich keine Logik mit Login und yourreample.com? – Graviton

+0

Ah ok, tut mir leid, ich verstehe die Frage beim ersten Mal falsch. – gacrux

0

Ich weiß, das ist nicht genau das, was Sie gefragt haben, aber würde es tun, indem .htaccess mit allen Anforderungen (gültig oder nicht) direkt über eine Datei & dann serverseitige Scripting (zB PHP in meinem Fall), um durch die gültigen Optionen zu wechseln, alles andere mit einem Standard zu fangen, der zu der anderen URL umleitet.

z.B. dies:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php 

sendet alles, was auf index.php kein Antrag auf eine aktuelle Datei oder das Verzeichnis

4

Versuchen Sie, diese Regel ist:

RewriteCond %{HTTP_HOST} ^my\.example\.com$ 
RewriteRule !^login$ http://your.example.com%{REQUEST_URI} [L,R=301] 
+0

Ich habe example.com mit Absicht und so sollten Sie. Siehe http://tools.ietf.org/html/rfc2606 – Gumbo