Comment masquer le changement d’URL lors de l’utilisation de réécriture apache?

Comment masquer le changement d’URL lors de l’utilisation d’une réécriture apache? J’ai cherché pendant des heures sur cette question et j’ai décidé de venir ici pour trouver la réponse. Donc, toute aide / tous les indices seraient grandement appréciés!

En ce moment j’utilise:

RewriteRule ^/Page/(.*)$ http://domain.com/page.cfm?pagevar=$1 [NC,L] 

Le problème, c’est que lorsque vous naviguez sur http://domain.com/Page/abc123 cela fonctionne. MAIS, il change l’URL du navigateur à http://domain.com/page.cfm?pagevar=abc123 ,

Je veux qu’il exécute la même action, mais affichez l’URL http://domain.com/Page/abc123 .

S’il vous plaît, toute idée serait très appréciée! Merci encore.

La première règle redirecta votre URL laide vers le joli format d’URL.

La seconde règle le redirecta en interne pour que l’utilisateur ne voie pas l’URL laide.

 Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / # Redirect /page.cfm?pagevar=abc123 to /Page/abc123 RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s/+page\.cfm\?pagevar=([^&\s]+) [NC] RewriteRule ^ /Page/%1? [R=301,L] # Internally forward /Page/abc123 to /page.cfm?pagevar=abc123 RewriteRule ^Page/(.*)/?$ /page.cfm?pagevar=$1 [QSA,NC,L] 

Les règles ci-dessus doivent être utilisées sur .htaccess fichiers .htaccess et supposent que page.cfm est à la racine de votre dossier de domaine avec le fichier .htaccess .

Comme vos exemples le proposent.

Vous devez vous débarrasser de la partie http://domain.com de la cible de la règle. Lorsque vous avez cela, l’implicite redirige le navigateur au lieu de réécrire en interne:

 RewriteRule ^/Page/(.*)$ /page.cfm?pagevar=$1 [NC,L]