web-dev-qa-db-fra.com

En utilisant .htaccess, pouvez-vous masquer la véritable URL?

J'ai donc un hôtel Web avec 1 site principal

http://www.myrootsite.com/

et quelques sites Web dans des sous-répertoires, dans un dossier appelé projets.

J'ai des noms de domaine qui pointent vers les sous-répertoires, mais lorsque vous maintenez le pointeur de la souris sur un lien dans ces sites Web, les URL sont indiquées comme suit:

http://www.myrootsite.com/projects/mysubsite/contact.html

Quand je suis sur mysubsite.com je veux qu’ils soient montrés comme:

http://www.mysubsite.com/contact.html

J'ai parlé au support de l'hôtel Web et le gars m'a dit d'essayer d'utiliser . Htaccess , mais je ne sais pas exactement comment procéder.

Merci beaucoup pour votre temps!

Edit: Pour plus d'informations

Mon site Web est: http://www.example1.com/ et je possède également http://www.example2.com/.

Tous les fichiers de example2.com se trouvent dans: example1.com/projects/example2/.

Lorsque vous visitez example2.com, vous remarquerez que tous les URL pointent vers:

example1.com/projects/example2/

mais je veux qu'ils pointent vers:

example2.com/

Cela peut-il être fait? J'espère que c'est assez d'infos pour que vous continuiez :).

Edit: For w3d

Je vais à l'URL mysubsite.com et le navigateur affiche l'URL mysubsite.com. Les services que j'utilise créent un iframe autour de myrootsite.com et utilisent l'URL mysubsite.com.

Je déteste ça dans Firefox et Internet Explorer, en maintenant la souris sur le lien, on voit que l’URL de destination est: myrootsite.com/projects/mysubsite/...

2
Richard Muthwill

Vous ne pouvez pas masquer votre véritable URL car elle peut comporter des risques pour de nombreux sites Web et utilisateurs, mais vous pouvez créer une page de redirection de la manière suivante:

<?php
$url = $_GET['url'];
header('Location: '.$url);

et vous pouvez changer le nom du fichier avec le . htaccess

1
InvisibleUn1corn

C’est vraiment quelque chose que le fournisseur d’accès Internet devrait renvoyer à sa fin:

<VirtualHost *:80>
    ServerName www.mysubsite.com
    DocumentRoot /path/to/projects/mysubsite
</VirtualHost>

Vous pourrez peut-être résoudre ce problème dans .htaccess:

RewriteCond %{HTTP_Host}  ^www\.mysubsite\.com [OR]
RewriteCond %{HTTP_Host}  ^mysubsite\.com
RewriteRule ^(.*) /path/to/projects/mysubsite/$1 [L]

Notez que je n'ai pas inclut [R] dans les indicateurs passés à RewriteRule, car cela indiquerait au serveur Web d'envoyer une redirection au navigateur Web. Si les deux sites sont sur des serveurs différents, mod_proxy doit être activé:

RewriteCond %{HTTP_Host}  ^www\.mysubsite\.com [OR]
RewriteCond %{HTTP_Host}  ^mysubsite\.com
RewriteRule ^(.*) http://www.myrootsite.com/projects/mysubsite/$1 [P,L]
1
Joe