WinFuture-Forum.de: Mod Rewrite Regeln - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Mod Rewrite Regeln


#1 Mitglied ist offline   chrisx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 35
  • Beigetreten: 11. Januar 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Chur (CH)

geschrieben 02. November 2006 - 17:58

Hallo,

hoffe, das passt hier am besten rein. Ich möchte via .htaccess eine bestimmte IP-Range sperren, was ja auch einfach ist

Zitat

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} ^84.185.
RewriteRule ^.* - [F]
</IfModule>


funktioniert so schonmal. Nun möchte ich einstellen, dass eine bestimmte Ip-Adresse zu einer internen URL weitergeleitet wird, finde dafür aber nirgendwo einen funktionierenden Code :P Lässt es sich so einrichten, dass diese IP Adresse beim Aufruf von / auf z.B. test.html kommt, aber mittels /index.php immernoch auf die Seite zugreifen kann?

Vielen Dank! ;)
0

Anzeige



#2 Mitglied ist offline   asko 

  • Gruppe: aktive Mitglieder
  • Beiträge: 144
  • Beigetreten: 17. November 02
  • Reputation: 0

geschrieben 03. November 2006 - 08:46

Hi

Ich habe deinen letzten Satz jetzt 5 mal gelesen und immer noch nicht kapiert was Du meinst.
IP-Adressen bzw ganze IP-Bereiche lassen sich besser mit etwa
<Directory /OrdnerNameHier>
	Order Deny,Allow
	Deny from IPhier
</Directory>

blocken, weil so nicht jedesmal die rewrite_engine angeworfen werden muß. Das hat aber eher performante Gründe und weniger praktische.

Wenn ich deinen letzten Satz wenigstens halbwegs richtig verstanden habe, dann möchtest Du, daß eine bestimmte IP-Adresse auf eine Seite umgeleitet wird (nennen wir sie mal script.php), der User aber im Browser eine andere sieht (sagen wir mal test.htm).
Das geht ohne Probleme. Die Frage hier ist aber, wie viele Parameter werden übergeben (falls überhaupt) und wie sind diese aufgebaut? Beispiel:
RewriteCond %{REMOTE_ADDR} ^123.456.
RewriteRule ^(.*)\.htm$ index.php?seite=$1 [QSA,L]

Würde alle Anfragen von IP 123.456.nnn.nnn die eine *.htm anfordern intern auf die index.php umleiten, wobei der Name der htm Datei als Parameter an das PHP-Script übergibt. Das wird z.B. gebraucht wenn man die Navi mit einer Switch() aufgebaut hat.
Das [QSA,L] bedeutet: QSL ermöglicht es, daß der htm-Datei noch weitere Parameter mitgegeben werden können (irgendwas.htm?seite=4) und das L steht für "last" - nach dieser Regel werden also keine weiteren Regeln der htaccess angewendet, damit es nicht zu Kollisionen kommt.

Eine einfacherer Variante mit Aufruf einer Datei wäre:
RewriteCond %{REMOTE_ADDR} ^123.456.
RewriteRule ^test\.htm$ index.php [L]


Oder eben bei root-Aufruf mit Umleitung auf eine bestimmte Seite:
RewriteCond %{REMOTE_ADDR} ^123.456.
RewriteRule ^/$ http://www.domain.de/irgendwas.htm [L]


Natürlich lassen sich diverse Conditions mit verschiedenen Rules kombinieren. Das ganze Thema ist sehr komplex. Am besten mal googlen und ausgiebig Tutorials darüber lesen, da Du sonst u.U. den ganzen Webserver lahm legen kannst mit falschen Einstellungen/Schaltern.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0