title image


Smiley Re: Es heißt genau das Gegenteil
Hallo,



>na gut, wie soll das Code dann sein, damit eine bestmmte IP zu google umgeleitet wird?



oder einfach " ! " weg so ?:



RewriteEngine On

RewriteCond %{REMOTE_ADDR} ^62\.67\.200\.

RewriteRule ^(.*)$ http://www.google.de$1 [R=301,L]



statt so:

RewriteEngine On

RewriteCond %{REMOTE_ADDR} !^62\.67\.200\.

RewriteRule ^(.*)$ http://www.google.de$1 [R=301,L]



Nein, so wird keine _bestimmte_ IP zu Google umgeleitet, sondern alle, die mit 62.67.200 anfangen. Also alle von 62.67.200.1 bis 62.67.200.254.



Wenn du _eine_einzige_ umleiten möchtest, dann verwende diesen Code:



RewriteEngine On

RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.xxx\.xxx

RewriteRule ^(.*)$ http://www.google.de [R=301,L]



Die xxx musst du eben durch deine IP ersetzen (also z.B. 10\.10\.0\.124 entspricht dann IP 10.10.0.124).



Jetzt noch ein Crash-Kurs in ModRewrite:



Die erste Zeile schaltet die RewriteEngine an. Das benötigst du in jeder .htaccess nur einmal, damit deine Regeln auch funktionieren.



Mit RewriteCond kannst du Angeben, wann deine Regeln greifen sollen. In diesem Fall greift die Regel nur, wenn du eine bestimmte IP hast. Du kannst natürlich auch noch andere Sachen, außer REMOTE_ADDR benutzen (z.B. den UserAgent und ähnliche sinnlose Dinge).



Und schliesslich die RewriteRule. Diese gibt an, wie die URL aussehen muss, damit die Regel greift und wie sie umgeschrieben werden soll. Deshalb besteht die Regel aus zwei teilen. Der erste Teil ist der zwischen ^ und $. In diesem Fall steht da (.*). Das ^ heißt einfach nur Anfang und $ heißt Ende. Dazwischen steht ein Punkt, welche für jedes beliebige Zeichen steht und ein Sternchen, welches für eine beliebige Anzahl steht. Somit heißt die Regel: "Wenn zwischen Anfang und Ende der URI beliebig viele Zeichen (egal welche) stehen, dann greift die Regel." Somit wirkt sich deine Rule auf alle URLs aus. Würdest du die RewriteCond nicht haben, welche die Regel auf die IPs beschränkt, so würden alle Besucher einfach weitergeleitet werden.

Die Klammer hat noch eine besondere Funktion. Alles, was innerhalb der Klammer steht, wird in eine Variable gespeichert. Somit wird bei dir, deine komplette URI, wie sie im Browser eingegeben wurde, in einer Variabel gespeichert. Mit dieser kannst du im zweiten Teil arbeiten.



Im zweiten Teil, welcher einfach ein Leerzeichen nach dem $ beginnt, wird festgelegt, wie deine URL umgeschrieben werden soll. Du kannst dort eine Datei auf deinem Webserver aufrufen (./irgendwas.php) oder eben eine URL. Mit den Angaben in der Eckigen Klammer nach der URL wird in diesem Fall angezeigt, dass du einen HTTP-301-Statuscode absenden willst (Moved Permanently), damit der Browser automatisch auf die URL weiterleitet. Das L gibt nur an, dass dies die letzte Regel war und die nächsten (falls da welche kommen würden) nicht ausgeführt werden müssen.

Jetzt noch zu den Variabeln. In deinem Original-Script war direkt hinter google.de das $-Zeichen mit der 1 dahinter. Damit greifst du auf die Variable Nr. 1, welche du im ersten Teil gespeichert hast zu. Das entspricht der ersten Klammer im ersten Teil. Jede weitere Klammer wird einfach durchnummeriert und du kannst sie dann mit $2, $3 usw. ansprechen. In diesem Fall würde die URL, die eingegeben würde, komplett in der Variabel $1 gespeichert und einfach an google.de angehängt (was, wie schon gesagt, ziemlicher Schwachsinn wäre). Gibst du z.B. http://example.com/irgendwas.html ein, so wirst du zu dieser Adresse weitergeleitet: http://www.google.dehttp://example.com/irgendwas.html. Wie du siehst, wäre das ziemlich Sinnlos. Im realen Gebrauch wird normalerweise auf ein Script (z.B. PHP) weitergeleitet, welches dann die Variabeln in Form von GET-Parametern entgegennimmt: irgendwas.php?url=$1



Ich hoffe, das war einigermaßen verständlich. ModRewrite kann sehr kompliziert sein, vor allem aufgrund der Tatsache, dass die Regulären Ausdrücke an für sich schon eine komplizierte Materie sind (ich hab im Netz noch kein einziges gescheites Tutorial gefunden).



mfg glitzi

"Ich glaube, manchmal gibt es einfach nicht genug Steine"

Forrest Gump



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: