Aller au contenu

Redirection en fonction de l'IP


mulanee

Messages recommandés

Posté(e)

Bonjour,

J'ai un petit serveur web sur mon 213+

Mon serveur oriente vers 2 vhosts, correspondant l'un à un site public sur un répertoire /web/public, l'autre à un intranet sur un répertoire /web/prive (objet d'un autre fil)

Je voudrais qu'il n'y ait pas d'accès à mon intranet depuis l'extérieur

.htaccess ne fonctionne pas avec nginx pour une redirection par IP

idem avec Apache, et en plus j'ai des soucis d'affichage

Merci

Posté(e)

Bonjour

NGINX ne prend pas en compte les fichiers .htaccess.
Pour orienter vers un site en fonction de l'adresse IP:

<?php 
if (ereg('192.168',$_SERVER['REMOTE_ADDR']))
	{
	header("Location: http://siteLLocal/"); 
	}
else
	{
	header("Location: http://sitePublique/ ");  
	}
?>

Et pour les fichiers css il est possible que les css soient mis en cache pour éviter cela:

<?php 
echo '<link rel="stylesheet" href="css/Style.css?'.filemtime("css/Style.css").'" type="text/css" />'."\n";
?>

et ne pas se tromper dans les chemins des fichiers

Posté(e)

Pour les css, je suis passé d'Apache 2.4 à Apache 2.2 et ça fonctionne (?)

Quant au php de redirection , ça ne fonctionne pas, j'ai droit à une page blanche

Posté(e)

désolé la fonction ereg n'existe plus en php 7

Essaye

<?php 
echo $_SERVER['REMOTE_ADDR']."<br>";
if (strpos("192.168.",$_SERVER['REMOTE_ADDR'])==0)
	{
	echo  "Site Local";
	// header("Location: http://siteLLocal/"); 
	}
else
	{
	echo  "Site Publique";
	// header("Location: http://sitePublique/ ");  
	}
?>

 

Posté(e)
il y a 54 minutes, Mike913 a dit :

<?php 
echo $_SERVER['REMOTE_ADDR']."<br>";
if (strpos("192.168.",$_SERVER['REMOTE_ADDR'])==0)
	{
	echo  "Site Local";
	// header("Location: http://siteLLocal/"); 
	}
else
	{
	echo  "Site Publique";
	// header("Location: http://sitePublique/ ");  
	}
?>

 

Pas mal.

Au moins on ne peut pas rentrer dans le site privé, mais le test ne renvoie pas sur la bonne réponse en fonction de l'IP:

Citation

82.102.xx.xxx
Site Local

Citation

192.168.1.254
Site Local

Posté(e)

Teste ceci: 

<?php
function test($IP)
{
	$rep = "?";
	$pos = strpos($IP,"192.168.");
	if ($pos === 0)
		$rep = "Local";
	else
		$rep = "Public";
	return $rep;
}
// =================
$IP="82.102.xx.xxx";
$site = test ($IP);
echo $IP."  ".$site."<br>";
echo "-------------------------<br>";
$IP="192.168.1.254";
$site = test ($IP);
echo $IP."  ".$site."<br>";
?>

 

Posté(e)
il y a 20 minutes, Mike913 a dit :

Teste ceci: 


<?php
function test($IP)
{
	$rep = "?";
	$pos = strpos($IP,"192.168.");
	if ($pos === 0)
		$rep = "Local";
	else
		$rep = "Public";
	return $rep;
}
// =================
$IP="82.102.xx.xxx";
$site = test ($IP);
echo $IP."  ".$site."<br>";
echo "-------------------------<br>";
$IP="192.168.1.254";
$site = test ($IP);
echo $IP."  ".$site."<br>";
?>

 

 

Ca donne ça:

Citation

82.102.xx.xxx Public
-------------------------
192.168.1.254 Local

 

Posté(e)

Bonjour ,

Je souhaite que les accès extérieurs http arrivant sur /web soient redirigés vers /web/toto, comment faire?

Merci.

Posté(e)
Il y a 2 heures, Kramlech a dit :

Les "Virtual Host" de Web Station sont faits pour cela, non ?

Probablement, mais le fait est que j'arrive directement à /web quand je rentre mon IP depuis l'extérieur

Posté(e)
il y a 56 minutes, mulanee a dit :

je rentre mon IP depuis l'extérieur

C'est normal, car le principe d'un Virtual Host est de rediriger un nom de domaine (de type "monsite.mondomaine.fr") vers un sous dossier "web/monsite".

On ne peut avoir un Virtual Host avec une IP !!!

Posté(e)
il y a 11 minutes, Kramlech a dit :

C'est normal, car le principe d'un Virtual Host est de rediriger un nom de domaine (de type "monsite.mondomaine.fr") vers un sous dossier "web/monsite".

On ne peut avoir un Virtual Host avec une IP !!!

Sur le principe ça me dérange quand même qu'on arrive à rentrer en connaissant mon IP, j'aimerais bien interdire tous les accès sauf les adresses internes 192.168. par exemple.

Et d'autre part dans le même esprit, j'ai un sous répertoire /web/dir1 (virtualhost1) que j'aimerais rendre accessible seulement aux adresses internes, en redirigeant vers un autre sous répertoire /web/dir2 (monsite.mondomaine.fr) qui est lui destiné aux accès externes

 

Posté(e)
il y a 19 minutes, mulanee a dit :

Sur le principe ça me dérange quand même qu'on arrive à rentrer en connaissant mon IP, j'aimerais bien interdire tous les accès sauf les adresses internes 192.168. par exemple.

Je ne comprend pas tout. Tu veux rendre ton site accessible depuis l'extérieur ou pas ? Si tu veux qu'il soit accessible de l’extérieur via l'URL et pas via l'IP, je pense que c'est au niveau du pare-feu qu'il faut que tu agisses. Mais sache que toute personne connaissant ton nom de domaine connait aussi ton IP (c'est l'objet des serveurs DNS)...

il y a 25 minutes, mulanee a dit :

j'ai un sous répertoire /web/dir1 (virtualhost1) que j'aimerais rendre accessible seulement aux adresses internes, en redirigeant vers un autre sous répertoire /web/dir2 (monsite.mondomaine.fr) qui est lui destiné aux accès externes

Deux sites, donc deux noms de site (monsite1.mondomaine.fr et monsite2.mondomaine.fr) + paramétrage du pare-feu ...

Posté(e)
  • Je veux autoriser /web/dir2 (monsite.mondomaine.fr), l'IP n'est pas trouvable simplement car c'est une redirection (synology.me)

 

  • Le VH de dir1 (virtualhost1) est une redirection par le serveur dns synology pas accessible par le nom depuis l'extérieur, mais accessible par monip/dir1 puisque monip pointe sur /web
    Je veux interdire l'accès à /web/dir1 (virtualhost1 interne) depuis l'extérieur, de même qu'à /web

Pour faire tout ça je voudrais mettre un .htaccess ou un index.php qui redirige en fonction de l'IP vers le site accessible si c'est un IP publique, ou qui permette de rentrer si c'est une IP interne.

edit:

Possible probablement par une règle du firewall mais je n'ai pas trouvé de critère par directory

 

Posté(e)

Tu veux qu'en utilisant une même URL, cela t'envoie sur des sites différents selon que tu appelles cette url depuis ton réseau local ou depuis l'extérieur ?

Ca me parait tordu, et là je ne te serai d'aucun secours.... Il va falloir que quelqu'un de plus intelligent passe par là ....

Posté(e)
Il y a 8 heures, Kramlech a dit :

Tu veux qu'en utilisant une même URL, cela t'envoie sur des sites différents selon que tu appelles cette url depuis ton réseau local ou depuis l'extérieur ?

Ca me parait tordu, et là je ne te serai d'aucun secours.... Il va falloir que quelqu'un de plus intelligent passe par là ....

Non ce n'est pas ça, j'ai mal expliqué.

Je veux qu'en entrant http://monipexterieure ou http://monipexterieure/dir2 j'arrive sur le répertoire /web/dir2 depuis l'extérieur (ou l'intérieur)

Je ne veux pas qu'en entrant http://monipexterieure/dir1  on arrive sur le répertoire /web/dir1 depuis l'extérieur, dir1 étant réservé à mes adresses IP intérieures (192.168. par exemple)

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.