Aller au contenu

Redirection en fonction de l'IP


mulanee

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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/ ");  
	}
?>

 

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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>";
?>

 

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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 !!!

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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 ...

Lien vers le commentaire
Partager sur d’autres sites

  • 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

 

Lien vers le commentaire
Partager sur d’autres sites

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à ....

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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.