2010-12-06 22 views
5

Siempre envío todas mis solicitudes a PHP a través de mod_rewrite y ruta utilizando PHP. Entonces, todos mis enlaces son absolutos, es decir, /about/something.¿Deberíamos usar <base href = "" />?

suelo escribir mis enlaces así ...

<a href="<?php echo BASE; ?>">home</a> 

Dónde BASE se traduce generalmente a / o podrían ser diferentes dependiendo de la dirección URL base.

Recuerdo dar <base href="<?php echo BASE; ?>" /> antes, pero no recuerdo por qué dejé de usarlo (creo que me estaba dando dolores de cabeza).

¿Hay problemas con el uso de este elemento?

Respuesta

3

El href del elemento base tenía, en HTML 4.01, ser un URI absoluto. Ver http://www.w3.org/TR/html4/struct/links.html#h-12.4.

Aunque algunos navegadores son menos estrictos, creo que no creo que todos los navegadores sean consistentes en esto, por lo que <base href="/"> probablemente no funcionará en todos los navegadores.

3

Siempre uso base href por la misma razón; Utilizo mod_rewrite para convertir la url en una cadena de consulta y no quiero usar direcciones URL absolutas en todas partes. Así que puse una base href en la parte superior. Nunca tuve problemas reales con eso.

+0

¿Ha intentado hacer un javascript "location.href" a una url relativa en una subcarpeta, utilizando href base, en IE? Ejemplo: si su href base es "http://www.site.com/" y su javascript onclick es "window.location.href = 'folder/targetpage.html'; return false;" - en IE, esto no funcionará correctamente si ya estás en esa subcarpeta. ¿Tienes una solución para esto? – Sean

+0

Nunca noté esto; así que obviamente no tengo una solución alternativa. –

0

OpenCart lo usa, Magento 1.7+ no, Drupal 6 no. Me encontré con una implementación href base personalizada en el pasado y parece que el mantenimiento del proyecto es más difícil, pero esa es solo mi opinión.

Cuestiones relacionadas