¿Cómo vuelvo a dirigir todas las solicitudes de favicon.ico en el directorio raíz o cualquier subdirectorio a /images/favicon.ico.htaccess - redirigir favicon
Respuesta
Pruebe esta regla:
RewriteEngine on
RewriteRule ^favicon\.ico$ /images/favicon.ico [L]
Editar Y para favicon.ico con la profundidad segmento de trazado arbitrario:
RewriteCond $0 !=images/favicon.ico
RewriteRule ^([^/]+/)*favicon\.ico$ /images/favicon.ico [L]
RewriteEngine on
RewriteRule ^(.*)favicon\.ico /images/favicon.ico [L]
^delante es muy importante –
Esto me está dando un error interno del servidor. ¿Es beacause (. *) Favicon.ico también coincide con /images/favicon.ico por lo que se convierte en un bucle – Tim
Registro de errores revisado y dice "La solicitud excedió el límite de 10 redirecciones internas debido a un probable error de configuración" así que parece de hecho está redirigiendo a sí mismo. ¿Cómo puedo evitar eso? – Tim
Esta reescritura rápida debe hacer el truco:
RewriteRule ^(.*)favicon.ico /images/favicon.ico
Sé que la pregunta se marca .htaccess
pero, por qué no utilizar un enlace simbólico?
ln -s images/favicon.ico favicon.ico
porque entonces tendría que crear un enlace simbólico en cada directorio y subdirectorio en el sitio – Tim
Esta es una solución que crea trabajo en lugar de ahorrar tiempo. – Mateng
Si el servidor está buscando favicon.ico en la raíz y no puede tenerlo allí, un enlace simbólico haría ... Voy a implementar esto ahora (para no estar vinculado a Apache) pero si necesita haciendo por directorio, quizás sea hora de reconsiderar la configuración ... – Alastair
Para un favicon en www.mysite.com/images/favicon.ico
el método más robusto sería:
RewriteCond %{REQUEST_URI} !^/images/favicon\.ico$ [NC]
RewriteCond %{HTTP_HOST} (.+)
RewriteRule ^(.*)favicon\.(ico|gif|png|jpe?g)$ http://%1/images/favicon.ico [R=301,L,NC]
Explicación:
RewriteCond %{REQUEST_URI} !^/images/favicon\.ico [NC]
:
- asegura que la regla de redirección no se aplica si el URI correcto se solicita (por ejemplo, un redireccionamiento 301 escribirá el URI de favicon correcto en el caché del navegador, y esta línea evita el procesamiento de la regla si el navegador solicita el URI correcto)
- [NC] significa que no es sensible a mayúsculas
RewriteCond %{HTTP_HOST} (.+)
:
- recupera el nombre de host http - para evitar codificar duro el nombre de host en el RewriteRule
- esto significa que se puede copiar el archivo .htaccess entre lo local/servidor de prueba y el servidor de producción sin problemas (o la necesidad de volver a codificar el nuevo URL base en su sitio RewriteRule)
RewriteRule ^(.*)favicon\.(ico|gif|png|jpe?g)$ http://%1/images/favicon.ico [R=301, L]
:
- ^
es el comienzo de la expresión regular
- (.*)
es un grupo comodín, lo que significa que puede haber cero o cualquier número de caracteres antes de la palabra favicon
en el URI (es decir, esta es la parte que permite incluir el directorio raíz o cualquier subdirectorio en el URI)
- \.(ico|gif|png|jpe?g)
comprueba que la extensión URI coincide con cualquiera de .ico
, .gif
, .png
, .jpg
, .jpeg
- $
es el final de la expresión regular
- http://%1/images/favicon.ico
es la URL de redirección - e inyecta el nombre de host se recuperaron en el anterior RewriteCond
. Tenga en cuenta que el %1
se llama RewriteCond backreference, lo que significa que es el último RewriteCond
que se ha cumplido. (por ejemplo, %2
sería el 2do. último RewriteCond
que se ha cumplido)
- R=301
significa que es un redireccionamiento permanente, que almacena el redireccionamiento en el caché del navegador. Tenga cuidado al probar: deberá eliminar la memoria caché del navegador entre cambios de código o la redirección no se actualizará. Probablemente dejes esto hasta que sepas que la regla funciona.
- L
es la última redirección que se debe seguir en este archivo .htaccess
; no será necesario para que la regla funcione, ya que la línea 1 no se cumplirá una vez que el navegador se dirija a la URL correcta. Sin la línea 1 o L
, RewriteRule dará como resultado un bucle permanente (dado que la URL de redirección seguirá cumpliendo las condiciones de RewriteRule
). Sin embargo, es una buena idea agregar el L
de todos modos si tiene otras reglas que siguen las reglas de favicon, ya que en una solicitud de favicon.ico, puede (probablemente) ignorar las siguientes reglas.
Puede probar .htaccess
reglas en http://htaccess.mwl.be/
final Nota:
- tener cuidado de que no tiene ninguna otra RewriteRule en un fichero .htaccess
situado en cualquiera de sus subdirectorios.
- por ejemplo, si se pone esta respuesta en su archivo www.mysite.com/
carpeta raíz .htaccess
, una regla RewriteRule (.*) xxx
tipo en su www.mysite.com/images/
carpeta puede meterse con los resultados.
- 1. Default Spring Security redirigir al favicon
- 2. parada .htaccess redirigir
- 3. 301 redirigir .htaccess
- 4. .htaccess redirigir subcarpeta a HTTPS
- 5. .htaccess redirigir la raíz a index.php
- 6. .htaccess redirigir si el archivo no existe
- 7. .htaccess redirigir carpeta a una url
- 8. Redirigir .com a .org en .htaccess
- 9. .htaccess directivas para * no * redirigir ciertas URL
- 10. htaccess RewriteRule redirigir al directorio principal?
- 11. Redirigir más rápido, PHP o htaccess?
- 12. htaccess redirigir 4 páginas específicas a https
- 13. Cómo redirigir la extensión html usando htaccess?
- 14. .htaccess Redirigir a HTTPS, excepto el subdominio
- 15. .htaccess cómo redirigir a subdirectorio URL externa
- 16. .htaccess redirigir todos los archivos html
- 17. htaccess redirigir si la URL contiene una determinada cadena
- 18. Cómo hacer htaccess redirigir según el valor de cookie
- 19. htaccess redirigir .co.uk a .com para todas las páginas
- 20. Redirigir sobre la base del referer HTTP_REFERER htaccess
- 21. .htaccess redirigir a una URL externa mientras oculta la redirección
- 22. .htaccess redirigir el dominio principal, pero no subcarpeta
- 23. uso de htaccess para redirigir página de wordpress a subpágina
- 24. 301 Redirigir con htaccess y caché: cómo eliminar Old Cache?
- 25. Redirigir URL que no sea www a www usando .htaccess
- 26. cómo modificar el archivo .htaccess para redirigir siempre a www
- 27. Invisible .htaccess Redirigir desde/public_html/to/public_html/folder
- 28. .htaccess redirigir a todas las direcciones IP, pero la mía
- 29. htaccess 301 redirigir todo el sitio, pero con excepciones
- 30. Redirigir el sitio con .htaccess pero excluir una carpeta
Esto funciona para /favicon.ico pero no para /folder/favicon.ico Algunos navegadores son solicitando favicon.ico en la carpeta local a pesar de que está especificado como /images/favicon.ico, así que quise redirigir las solicitudes actualmente defectuosas a la ubicación correcta – Tim