Domanda

alla ricerca di una più userfriendly URL , come faccio a raggiungere entrambi dei seguenti, con eleganza utilizzando solo .htaccess?

/ de / somepage
andando a /somepage?ln=de

/ ZH-CN / somepage # 7
andando a /somepage?ln=zh-CN#7

sintesi:
/ [lingua] / [pagefilenameWithoutExtension] [opzionale ancoraggio #] [un numero da 0-9]

dovrebbe caricarsi (senza cambiare url)
/ [pagefilenameWithoutExtension]? Ln = [lingua] [opzionale ancoraggio #] [un numero da 0-9]

UPDATE, dopo soluzione fornita: 1. eccezioni / ZH-CN / somepage dovrebbe essere raggiungibile da / cn / QualchePagina 2. php miniature generate ora dont più carico come:
img src = "imgcpu? src = someimage.jpg & w = 25 & h = 25 & c = f & f = bw"

È stato utile?

Soluzione

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

Non c'è bisogno di fare qualsiasi cosa per frammenti (ad esempio: #7). Essi non vengono inviati al server. Sono gestite interamente dal browser.

Aggiornamento: Se davvero vuole trattare zh-CN come un caso speciale, si potrebbe fare qualcosa di simile:

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

Altri suggerimenti

vorrei suggerire il seguente -

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 prima regola si prende cura di URL come / de / QualchePagina. Il linguaggio deve essere di esattamente due caratteri lunghezza e deve contenere solo caratteri z.

La seconda regola si prende cura di URL come / UK / somepage # 7.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top