Aller au contenu

Featured Replies

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)
  • Auteur

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)
  • Auteur
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)
  • Auteur
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)
  • Auteur

Bonjour ,

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

Merci.

Posté(e)

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

Posté(e)
  • Auteur
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

Modifié par mulanee

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)
  • Auteur
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)
  • Auteur
  • 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

 

Modifié par mulanee

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)
  • Auteur
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)

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.