2011-10-14 4 views
0

J'essaye de réécrire des liens avec le fichier .htaccess. Des trucs de base, mais pour une raison quelconque, ça ne marche pas. J'ai besoin du nom du fichier, avant .php pour être le dernier mot de l'URL. Qu'est-ce que j'oublie ici?Réécriture du lien avec .htaccess

RewriteRule ^/product/(.*)$ /incl/static/products/$1.php [NC,L] 
+0

Votre regex saisit tout jusqu'à la fin de l'url, donc '/product/this/that/something.php? Blah = blah' fera de $ 1 égal à' this/that/something.php? Blah = blah' . –

+0

Attendez, est-ce que je l'ai fait à l'envers? Comment puis-je mettre 1 $ après/produit /? – santa

+0

Vous auriez besoin de quelque chose comme 'RewriteRule ^/product /(.*). Php (. *) $', Pour capturer le nom du script ($ 1) ET la chaîne de requête ($ 2) séparément. Sinon, vous finirez avec '/ product/test.php' en devenant' /incl/static/products/test.php.php' –

Répondre

1

comme Marc dit que vous besoin de quelque chose pour distinguer le nom du fichier de script et d'autres parties: (. *)

RewriteRule ^products/script/(.*)/(.*)$ $1.php?$2&%{QUERY_STRING} 

Mais si après la première est une chaîne de requête, afin de l'utiliser:

RewriteRule ^products/script/(.*)$ $1.php?%{QUERY_STRING}