2012-11-19 5 views
0

Je suis nouveau à travailler avec .htaccess et j'ai des problèmes pour utiliser mod_rewrite pour apache.mod_rewrite ne fonctionne pas

Donc, fondamentalement, j'ai une URL. www.website.com/test/index.php

et je voudrais qu'il soit plus court www.website.com/t/index.php

Donc dans mon dossier .htaccess J'ai ces trois lignes:

RewriteEngine On 
RewriteBase/
RewriteRule ^test/(.*) t/$1 [R=301,L] 

Cela fonctionne parfaitement pour me diriger vers www.website.com/ t/index.php mais la page index.php ne se chargera pas et affichera seulement un 404 error. Toute aide serait grandement appréciée.

+0

Pensez à poster ceci sur [serverfault.com] (http://serverfault.com). –

+0

Comment savez-vous que la réécriture fonctionne si vous obtenez une erreur 404? – Codeguy007

+0

Eh bien, quand je vais sur www.website.com/test/index.php, il me redirige vers www.website.com/t/index.php mais l'index.php ne se charge pas avec la nouvelle URL. – user1476276

Répondre

0

Vous devez faire le raccourcissement de votre URL première:

RewriteEngine On 
RewriteRule ^test/(.*) t/$1 [R=301,L] 

... et assurez-vous, la nouvelle (et non existant) URL traitées se:

RewriteRule ^t/(.*) test/$1 [L] 

Le premier rewrite est "externe", donc il est affiché dans la barre d'adresse du navigateur client, mais le second est "interne", donc apache affiche uniquement les résultats de la nouvelle URL à la place de l'ancienne sans changement de barre d'adresse.