2010-08-10 4 views
0

cloacking url via .htaccess

permet de dire que je voulais masquer site.com/userpage.php dans site.com/ ou site.com/userpage

ou même la suppression des demandes get ..

de site.com/userpage.php?query=yes dans site.com/userpage.php ou site.com/userpage

comment peut Je fais cela en utilisant htaccess ou même d'autres méthodes?

merci les gars

Répondre

0

D'abord, souvenez-vous de mettre cette ligne dans votre .htaccess avant tout réécritures:

RewriteEngine on 

Si vous voulez site.com/something pour afficher site.com/something.php si elle existe sans changer l'URL, faites ceci:

RewriteCond %{REQUEST_URI}.php -f 
RewriteRule .* %{REQUEST_URI}.php 

Cela affichera un [fichier demandé] .php s'il existe tout en affichant la même URL que vous avez entrée. Si le fichier php n'existe pas, il vous donnera toujours un 404 comme il se doit. (C'est ce que le -f est pour.)

Il n'existe aucun moyen de masquer complètement les requêtes GET. Vous pouvez vous débarrasser des requêtes GET, mais elles ne seront plus disponibles pour votre script et cela ne sert à rien. Vous pouvez, cependant, le rendre plus agréable. Par exemple, si vous voulez site.com/userpage/item/30 pour afficher le contenu de site.com/userpage.php?item=30, vous pouvez faire quelque chose comme ceci:

RewriteRule ^/userpage/item/(.*)$ userpage.php?item=$1 

Vous pouvez aussi le faire fonctionner avec une valeur GET avec une règle comme ceci:

RewriteRule ^/userpage/(.*)/(.*)$ userpage.php?$1=$2 

Avec cela en effet, vous pouvez accéder à site.com/userpage.php?query=yes avec site.com/userpage/query/yes à la place. C'est à peu près le meilleur que vous pouvez faire; Les valeurs GET doivent provenir de l'URL en quelque sorte, donc si vous voulez que vos entrées soient complètement cachées, vous devrez utiliser POST à ​​la place.

0

Si vous ne voulez pas ajouter les requêtes GET, pourquoi ne pas utiliser POST? En outre, vous pouvez utiliser MultiViews pour autoriser l'accès à /userpage.php sous la forme/page_utilisatrice.

Options Indexes FollowSymLinks Includes MultiViews

La façon MultiViews fonctionne, il va vérifier un répertoire nommé userpage, et si elle en trouve pas, il ira dans le fichier, juste une tête au cas où vous aviez un répertoire nommé userpage ainsi .