Pregunta

en busca de una mayor fácil de usar URL ¿Cómo logro tanto de los siguientes, elegantemente usando sólo .htaccess?

/ de / CiertaPágina
ir a /somepage?ln=de

/ zh-CN / CiertaPágina # 7
ir a /somepage?ln=zh-CN#7

Resumen:
/ [idioma] / [pagefilenameWithoutExtension] [opcional de anclaje #] [un número del 0-9]

se debe cargar (sin cambiar url)
/ [pagefilenameWithoutExtension]? Ln = [idioma] [opcional de anclaje #] [un número del 0-9]

UPDATE, después solución proporcionada: 1. excepción / zh-CN / CiertaPágina debe ser alcanzable como / cn / CiertaPágina 2. php miniaturas generadas ahora no le carga más como:
img src = "imgcpu? src = someimage.jpg & w = 25 & h = 25 & c = f & f = bw"

¿Fue útil?

Solución

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

Usted no necesita hacer nada por fragmentos (por ejemplo: #7). Ellos no se envían al servidor. Están manejados en su totalidad por el navegador.

Actualización: Si realmente quiere tratar zh-CN como un caso especial, se podría hacer algo como:

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

Otros consejos

Yo sugeriría lo siguiente -

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 primera regla se encarga de URLs como / de / CiertaPágina. El lenguaje debe ser de exactamente dos caracteres longitud y debe contener sólo un a caracteres z.

La segunda regla se encarga de URLs como / uk / CiertaPágina # 7.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top