Je voudrais savoir comment je peux réécrire www.site.com?lang=lv&type=1&mode=2
en www.site.com/lv/1/2
en utilisant les options Apache mod_rewrite.Réécrire la règle sur plusieurs variables en utilisant Apache mod_rewrite
Répondre
Réécriture de base:
RewriteEngine On
RewriteRule http://www.site.com/?lang=(.+?)&type=(\d+?)&mode=(\d+?) http://www.site.com/$1/$2/$3 [L,R=permanent]
Edit: Changed drapeaux de réécriture pour forcer une redirection permanente
En supposant que vous voulez vraiment réécrire /lv/1/2
à ?lang=lv&type=1&mode=2
(je ne vois aucune raison de faire le contraire) et qu'aucune autre réécriture ne soit active, cela devrait faire l'affaire:
RewriteRule ^/([^/]*)/([^/]*)/([^/]*)$ ?lang=$1&type=$2&mode=$3 [L]
Aussi; vous feriez mieux de remplacer ces nombres magiques par des informations plus utiles si vous voulez les inclure dans votre URI.
Edit: Si c'est vraiment le contraire que vous souhaitez faire, voir la réponse par Matt S.
Oui, je suis le contraire: P Merci! – werd
Vous devez gérer le chemin URI et requête séparément. Si les paramètres apparaissent dans ce même ordre, vous pouvez le faire:
RewriteCond %{QUERY_STRING} ^lang=([^&]+)&type=([^&]+)&mode=([^&]+)$
RewriteRule ^$ /%1/%2/%3? [L,R=301]
Sinon, vous aurez besoin de les mettre dans l'ordre avant d'utiliser cette règle ou prendre chaque paramètre à la fois.
Aucun d'entre eux ne fonctionne, y a-t-il autre chose que j'ai besoin de changer dans la configuration d'Apache ou autre? – werd
@werd: Utilisez-vous le 'RewriteEngine on' obligatoire? Et où voulez-vous utiliser cette règle? – Gumbo
Oui je l'utilise, je l'utilise sur l'index du site. Dans le répertoire racine j'ai les fichiers index.php et .htaccess – werd
- 1. comment réécrire mon URL avec mod_rewrite sur apache?
- 2. Créer un alias en utilisant mod_rewrite Apache
- 3. mod_rewrite Rediriger les variables de règle question
- 4. Question sur la réécriture d'url en utilisant apache mod_rewrite
- 5. Apache mod_rewrite et plusieurs domaines
- 6. Apache mod_rewrite avec plusieurs paramètres
- 7. mod_rewrite: réécrire l'URL spécifique
- 8. Apache Rewrite Règle (Regex)
- 9. Réécrire l'URL en PHP avec mod_rewrite
- 10. Apache réécrire l'url
- 11. apache réécrire le conflit
- 12. Apache mod_rewrite réécrire tout sauf les fichiers .htaccess?
- 13. réécrire des liens dans le contenu gratté en utilisant mod_rewrite
- 14. aide nécessaire pour mod_rewrite/url réécrire l'expression
- 15. apache url réécrire sur .htaccess
- 16. comment rediriger FIRST et réécrire en utilisant mod_rewrite
- 17. apache mod_rewrite une règle pour n'importe quel nombre de possibilités
- 18. Apache réécrire
- 19. Réécrire Règle dans Nginx
- 20. En utilisant mod_rewrite à redirct en utilisant différentes variables get
- 21. url réécrire en php
- 22. Apache URL réécrire requête
- 23. Expliquer cette règle mod_rewrite
- 24. Règle mod_rewrite et setenv
- 25. Match Question Mark dans la règle mod_rewrite regex
- 26. Lighttpd mod_rewrite à Apache Mod_rewrite
- 27. passage de variables mod_rewrite
- 28. Éviter la demande sous-répertoire récrit avec Apache mod_rewrite
- 29. Conversion en minuscules dans une règle mod_rewrite
- 30. apache mod_rewrite pour forcer index.php
Cela semble fonctionner: L'URL demandée n'a pas été trouvée sur ce serveur. – werd
Avez-vous une page qui répond à 'site.com/lv/1/2'? Utilisez-vous un cadre quelconque? –