2017-07-04 1 views
1

Je URL comme ça http://www.example.com/subdir/Subcontent?QUERY=420501 je veux rediriger vers http://www.example.com/subcontent.html?QUERY=420501 si Subcontent est dynamique dans l'URL, alors il va changer la première lettre de Subcontent à petite et rediriger vers l'URL finale http://www.example.com/subcontent.html?QUERY=420501.htaccess extension de redirection de sous-répertoire et chaîne de requête

Je l'ai essayé avec ce

RewriteCond %{QUERY_STRING} QUERY=([0-9]+) [NC] 
RewriteCond %{REQUEST_URI} !\.html 
RewriteRule ^subdir/(.*)$ /$1 [L,R=301] 

Mais il ne semble pas que je pense que travailler séquence n'est pas correcte des conditions cangetting aucune idée à ce sujet.

Répondre

0

Ajouter cette RewriteMap dans Apache ou configuration du serveur vhost:

RewriteMap lc int:tolower 

vous avez également une condition supplémentaire, utilisez cette règle pour rediriger et minuscules vos URL:

RewriteCond %{QUERY_STRING} (^|&)QUERY=([0-9]+) [NC] 
RewriteRule ^subdir/([\w-]+)/?$ /${lc:$1}.html [L,NC,R=301] 
+0

nous sommes très proches URL est changer maintenant pour http://www.example.com/Subcontent.html?SSAID=420501 mais le problème est que S est capital il doit être petit peut-on aussi le faire ainsi il pourrait y avoir des s supplémentaires dans le sous-contenu de sorte que l'url finale sera http://www.example.com/subcontents.html?SSAID=420501 merci anubhava vous êtes les hommes! –

+0

Ceci est la version finale qui a fonctionné pour moi RewriteRule^subdir/[sU] (. *?) /? $ /u$1s.html [L, NC, R = 301] –

+0

Le dépassement de pile est en train de changer [s U] pour superutilisateur s'il n'y a pas d'espace entre s et U alors il le change en superutilisateur en se demandant si on peut le rendre un peu meilleur donc par exemple si Subcontent est dynamique et que la première lettre est capitale comme dans url http: //www.example. com/subdir/Subcontent? QUERY = 420501 alors il peut automatiquement minuscule la première lettre du sous-contenu? –