Comment rediriger toutes les demandes de favicon.ico dans le répertoire racine ou tout sous-répertoire à /images/favicon.ico p>
5 Réponses :
RewriteEngine on RewriteRule ^(.*)favicon\.ico /images/favicon.ico [L]
le ^ devant est très important
Cela me donne une erreur de serveur interne. Est-ce la balustrade (. *) Favicon.ico correspond aussi /images/favicon.ico donc il devient une boucle
Le journal des erreurs vérifiées et la demande d'État indique la limite de 10 redirections internes en raison d'une erreur de configuration probable "alors on dirait que c'est vraiment redirige à lui-même. Comment puis-je contourner ça?
Droite j'ai sauté [l] drapeau. Essayez selon la réponse de Gumbo.
Je pense que j'ai besoin d'utiliser cela avec une réécrire pour dire si demande URI pas /images/favicon.ico Vous n'êtes pas sûr de la syntaxe correcte
Cette réécriture rapide devrait faire l'affaire:
RewriteRule ^(.*)favicon.ico /images/favicon.ico
Essayez cette règle:
RewriteCond $0 !=images/favicon.ico RewriteRule ^([^/]+/)*favicon\.ico$ /images/favicon.ico [L]
Cela fonctionne pour /favicon.ico mais pas pour /folder/favicon.ico Certains navigateurs demandent favicon.ico dans le dossier local, même s'il est spécifié comme /images/favicon.ico, donc je voulais rediriger les demandes actuellement défaillantes au bon endroit.
Élargir ce concept, une règle de réécriture plus détaillée représentant également des icônes non-Favicon: Stackoverflow.com/a/37107216/4378314
Je sais que la question est marquée .htaccess code> mais, pourquoi ne pas utiliser un symbole symbolique?
ln -s images/favicon.ico favicon.ico
Parce que je devrais alors créer un lien symbolique dans chaque répertoire et sous-répertoire sur le site
Si le serveur recherche FAVICON.ICO à la racine et vous ne pouvez pas y avoir là, un lien symbolique ferait ... Je vais mettre en œuvre cela maintenant (pour ne pas être attaché à Apache), mais si cela a besoin de faire Sur une base de répertoire par répertoire, il est peut-être peut-être l'heure de pré-considérer la configuration ...
pour un Favicon à explication: p> Vous pouvez tester Note finale: www.mysite.com/images/favicon.ico code>
La méthode la plus robuste serait:
réécritecond% {request_uri}! ^ / images / favicon \ .ico [nc] code >:
- veille à ce que la règle de redirection ne s'applique pas si l'URI correcte est demandée (par exemple, une redirection 301 écrira le cache de navigateur correct pour le cache de navigateur - et cette ligne évite le traitement de la règle si le navigateur demande la bonne URI)
- [NC] signifie que ce n'est pas sensible à la casse p> réécritecond% {http_host} (. +) Code>:
- Récupère le nom d'hôte HTTP - pour éviter de coder dur le nom d'hôte dans le Rewriterule code>
- Cela signifie que vous pouvez copier votre fichier .htaccess entre serveur local / test et serveur de production sans problèmes (ni besoin de recouvrir de la nouvelle URL de base de site dans votre rédreule) p> Rewriterule ^ ( . *) Favicon \. (ICO | GIF | PNG | JPE? g) $ http: //%1/images/favicon.ico [r = 301, l] code>: Code>
-
^ code> est le début de la regex
- (. *) code> est un groupe de caractères génériques - ce qui signifie qu'il peut y avoir zéro ou n'importe quel nombre de caractères avant le mot
Favicon code> dans l'URI (c'est-à-dire que c'est la partie que Permet à l'annuaire racine ou à tous les sous-répertoires d'être inclus dans le match URI)
- \. (ico | gif | png | JPE? g) code> vérifie que l'extension URI correspond à l'un des
.ico code>,
.gif code>. Code> .png code>,
.jpg code>,
.jpeg code>
- $ code> est la fin de la regex
- http: //%1/images/favicon.ico code> est l'URL de redirection - et il injecte le nom d'hôte que nous avons récupéré dans le précédent
réécritecond code>. Notez que le
% 1 code> est appelé un réécriteconde Releférence Cela signifie que c'est le dernier
réécritecond code> qui a été rempli. (par exemple,
% 2 code> serait le 2e dernier
réécritecond code> que pour avoir été rempli)
- r = 301 code> signifie qu'il s'agit d'une redirection permanente - qui stocke la redirection dans le cache de navigateur. Soyez prudent lorsque vous testez - vous devez supprimer le cache de navigateur entre les modifications de code ou la redirection ne mettra pas à jour. Laissez-la probablement jusqu'à ce que vous sachiez la règle fonctionne.
- l code> signifie que c'est la dernière redirection à suivre dans ce fichier
.htaccess code>. Vous n'aurez pas besoin de cela pour que la règle fonctionne depuis la ligne 1 ne sera pas atteinte une fois Le navigateur est dirigé vers la bonne URL. Sans la ligne 1 ou
l code> La réractère entraînera une boucle permanente (puisque l'URL de redirection continuera à satisfaire les conditions
Rewriterle code> conditions). Cependant, il est judicieux d'ajouter le
l code> de toute façon si vous avez d'autres règles qui suivent les règles FAVICON - depuis sur une demande Favicon.ico, vous pouvez (probablement) ignorer les règles suivantes. p>
.htaccess code> Règles de http: //htacaccess.mwl .be / p>
- Soyez prudent que vous n'ayez pas d'autres redailleulé dans un fichier .htaccess code> situé dans l'un de vos sous-répertoires.
- par exemple, si vous mettez cette em> réponse dans votre www.mysite.com / code> dossier racine
.htaccess code> fichier, un
rewriterule (. * ) xxx code> règle de type dans votre
www.mysite.com/images / code> dossier peut gâcher avec les résultats. p> p>