Question

à la recherche d'un plus URL userfriendly , comment puis-je obtenir les deux éléments suivants, en utilisant uniquement avec élégance .htaccess?

/ de / somepage va /somepage?ln=de

/ zh-CN / somepage # 7 va /somepage?ln=zh-CN#7

Résumé:
/ [langue] / [pagefilenameWithoutExtension] [# option d'ancrage] [un numéro de 0-9]

devrait charger (sans changer url)
/ [pagefilenameWithoutExtension]? Ln = [langue] [# option d'ancrage] [un numéro de 0-9]

UPDATE, après solution à condition que: 1. exception / zh-CN / somepage doit être accessible en / cn / somepage 2. php vignettes générées DonT maintenant comme charge plus:
img src = "imgcpu? src = someimage.jpg & w = 25 et h = 25 et c = f & f = bw"

Était-ce utile?

La solution

RewriteRule ^([a-z][a-z](-[A-Z][A-Z])?)/(.*) /$3?ln=$1 [L]

Vous ne devez rien faire pour des fragments (par exemple: #7). Ils ne sont pas envoyés au serveur. Ils sont entièrement prises en charge par le navigateur.

Mise à jour: Si vous vraiment voulez traiter zh-CN comme un cas particulier, vous pouvez faire quelque chose comme:

RewriteRule ^zh-CN/(.*) /$1?ln=zh-CN [L]
RewriteRule ^cn/(.*) /$1?ln=zh-CN [L]
RewriteRule ^([a-z][a-z])/(.*) /$2?ln=$1 [L]

Autres conseils

Je suggère ce qui suit -

RewriteEngine on
RewriteRule ^([a-z][a-z])/([a-zA-Z]+) /$2?ln=$1
RewriteRule ^([a-z][a-z])/([a-zA-Z]+#([0-9])+) /$2?ln=$1$3

La première règle prend en charge les URL comme / de / somepage. La langue doit être exactement deux caractères longueur et doit contenir seulement des caractères z.

La deuxième règle prend en charge les URL comme / uk / somepage # 7.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top