2011-08-03 8 views
0

Je voudrais réécrire cette URL:URL Apache difficile réécriture

myhost.com/elecresult-Cantonales-2011/039/03915.html

à celui-ci:

myhost.com/elecresult-Cantonales-2011/(path)/039%2F03915.html

Pourriez-vous me aider à la règle de réécriture? Est-il possible d'urlencode?

+0

Jusqu'où êtes-vous allé? Qu'est-ce qui fonctionne/quoi? –

Répondre

0

Utilisez des expressions régulières dans votre RewriteRule pour correspondre au chemin que vous avez tracé.

Si vous souhaitez faire correspondre un chemin générique, c'est-à-dire/premier/deuxième/troisième, vous pouvez utiliser cette expression régulière: ^/(. +)/(. +)/(. +) $. Vous utilisez la notation $ n (où n vaut 1 - 10) pour correspondre aux captures correspondantes. Pour changer cela en/first // secondthird, vous spécifiez la chaîne de remplacement: $ 1 // $ 2 $ 3

L'extrait ci-dessous devrait faire cela. Vous pouvez l'ajouter à votre directive d'hôte virtuel, à votre fichier .htaccess ou au fichier httpd.conf dans la directive d'annuaire. [L] spécifie d'écrire cette règle et d'arrêter.

<IfModule mod_rewrite> 
    RewriteEngine on 

    RewriteRule ^/(.+)/([0-9]+)/(.+)$ $1/(path)/$2%2F$3 [L] 
</IfModule> 
+0

Merci. Je vais l'essayer. Comment puis-je faire correspondre des URL avec un modèle 'elecresult-'? – Franck