IIS 7 URL-omskrivningsregel / Begræns brugeranmodning til en bestemt mappe / fil / filtyper

Jeg har en Apache-webserver, der serverer 2 domæner, og nu er et domæne i min skole blokeret; en er ikke (samme webside for øjeblikket). Jeg vil have, at hvis folk opretter forbindelse til mit gamle domæne (det, der ikke er blokeret), bliver omdirigeret, medmindre det kommer fra skolens IP-adresse. Hvordan ville jeg gøre dette, jeg ved, at det har noget at gøre med .htaccess men jeg ved ikke, hvordan man gør dette.

Prøv noget som det følgende tæt på toppen af ​​din .htaccess fil (ved hjælp af mod_rewrite):

RewriteEngine On RewriteCond %{HTTP_HOST} olddomain\.com [NC] RewriteCond %{REMOTE_ADDR} !203\.0\.113\.123 RewriteRule (.*) http://newdomain.com/$1 [R=301,L] 

Hvor 203.0.113.123 er skolens eksterne IP-adresse.

Dette er det samme som ethvert andet domæne til domæne omdirigering, bare med en yderligere betingelse for at udelukke anmodninger fra ovenstående IP-adresse.

OPDATERING: Hvis du foretager denne omdirigering i din hovedserverkonfiguration, skal du muligvis ændre ovenstående RewriteRule en smule. Hvis det er i en beholder derefter efterlad som det er, ellers hvis det er direkte i serverkonfigurationen (eller virtuel vært), skal du ændre det til noget som:

RewriteRule ^ http://newdomain.com%{REQUEST_URI} [R=301,L] 
  • Jeg har oprettet dette, men jeg skal teste det derhjemme for at sikre, at det fungerer fra en anden IP.
  • 1 Skift derefter skolens IP-adresse til din hjemme-IP-adresse ... du forventes at tænke lidt :)
  • ... men sørg for, at browserens cache ryddes bagefter (eller test med en 302).
  • Nej ... Virkede ikke ... Jeg tilføjede i min .htaccess "ErrorDocument 404 /404.html" og det fungerede heller ikke ...
  • 1 ".htaccess ser ikke ud til at svare på de direktiver, jeg giver det" - Ah ... Hvis med det ErrorDocument direktivet, filen /404.html serveres ikke, og du får bare standard 404-svaret, så lyder det .htaccess filer er ikke aktiveret. Du har brug for noget lignende AllowOverride All i det relevante container i serverkonfigurationen. Hvis du derefter begynder at få 500 fejl, skal du også installere / aktivere mod_rewrite. Men hvis du har adgang til serverkonfigurationen, foretrækkes det at gøre dette i din serverkonfiguration i stedet for .htaccess.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?