.htaccess - enmascarar - redireccionar dominio htaccess
Cómo usar htaccess para reescribir la url a html anchor tag(#) (4)
De hecho, puede hacer una de estas cosas, pero no ambas.
Puede usar la bandera [NE] para indicar a Apache que no debe escapar del carácter ''#'', pero para que la redirección funcione, debe especificar una URL absoluta a la que redireccionar, no simplemente una página relativa. Apache no puede desplazarse por la ventana hasta el anclaje por usted. Pero el navegador lo hará, si lo redirige a una URL absoluta.
Tengo una situación en la que deseo tomar la siguiente URL:
/ 1 / john
y hacer que se redirija usando el archivo htaccess de Apache para ir a
/page.php?id=1&name=john#john
para que vaya a un ancla html con el nombre de John.
He encontrado mucha referencia para escapar de los caracteres especiales y para agregar el indicador [NE] para que la redirección ignore el signo #, pero estos no funcionan. Por ejemplo, agregar [NE, R] significa que la URL solo aparece en la dirección del navegador como original: http://example.com/page.php?id=1&name=john#john .
Esto es posible usando la bandera [NE] (noescape).
Por defecto, los caracteres especiales, como & y?, Por ejemplo, se convertirán a su equivalente en código hexadecimal. Usar el indicador [NE] evita que eso suceda.
Más información http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_ne
Lo que desea hacer, se puede lograr con la reescritura de URL o, más específicamente, el embellecimiento de URL.
Acabo de encontrar rápidamente esta publicación de blog bien explicada para ti , espero que pueda ayudarte con el aprendizaje para reescribir la parte de las URL .
En cuanto al #
-algo (esperando que ahora sepa de lo que estoy hablando), no veo un problema al pasar la misma variable a la URL reescrita dos veces. Me gusta: (fíjate en la última parte de la primera línea)
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ /$1/$2/#$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&subpage=$2
Sin embargo, tendrás que escapar de #
-part, y parece que se puede hacer de esta manera:
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ /$1/$2//%23$2 [R,NE]
Por cierto, la reescritura de URL no es tan difícil (pero puede ser complicado, y no soy un experto), pero Google puede ayudar mucho en el camino.
No puede hacer una redirección interna a un ancla. (Solo piénselo: ¿cómo bajaría Apache al ancla?) Su enlace debería ir a /1/john#john
. Los anclajes no son parte de la solicitud uri.