web-dev-qa-db-fra.com

301 Redirection de la page "/ Usage" lorsque le webalizer est installé

J'ai déplacé mon site sur un autre hébergeur et cet hébergement utilise Webalizer . Mon site a une page appelée /usage.

Tout en testant, j'ai trouvé la page https://example.com/usage/ génère le 403 Forbidden Erreur dû à cette webalizer.conf:

#
# This configuration file maps the webalizer log analysis
# results (generated daily) into the URL space.  By default
# these results are only accessible from the local Host.
#
Alias /usage /var/www/usage

<Location /usage>
   # Alternative e.g. "Require ip 192.168.10"
   Require local
</Location>

Ok, j'ai renommé usage à some-usage et créé une redirection 301, mais apparemment, le fichier de configuration a une priorité plus élevée.

Ma question (s) :
[.____] puis-je être plus précis dans webalizer.conf et dites Apache d'ignorer /usagequand c'est dans le https://example.com/usage/ Contexte, ou comment puis-je définir la redirection 301 afin que cela fonctionne.

Edit : Est-ce une solution possible pour modifier la ligne Alias à ceci:

Alias /webalizer-usage /var/www/usage
       ^^^^^^^^^^ is added.

Je ne sais pas quel impact sur ce changement aurait.

Personnellement préférerais la solution où Apache ignore /usage dans le https://example.com/usage le contexte.

2
Peter VARGA

Personnellement préférerais la solution où Apache ignore /usage

Je pense que je manque quelque chose, mais si vous avez accès à la configuration du serveur, supprimer supprime le webalizer.conf Le fichier entièrement à partir de votre configuration semblerait résoudre votre problème? (À condition que vous n'ayez pas besoin d'un accès URL aux statistiques sur le webaliseur?)

Alternativement, changez l'URL utilisée dans le webalizer.conf Fichier, comme vous le souhaitez:

Alias /webalizer-usage /var/www/usage

<Location /webalizer-usage>
   # Alternative e.g. "Require ip 192.168.10"
   Require local
</Location>

(Probablement /var/www/usage est un endroit en dehors de votre racine de documents?)

Comme avec une modification de la configuration du serveur, vous devrez redémarrer Apache pour que la modification soit prise effet.

et créé une redirection 301 mais apparemment, le fichier de configuration a une priorité plus élevée.

Eh bien, pas nécessairement. Cela dépend de la manière dont vous mettez en œuvre la redirection et où. Il est parfaitement possible de mettre en œuvre une redirection dans .htaccess qui remplace un Alias défini dans la configuration du serveur. (par exemple, un simple mod_alias Redirect examine l'URL demandée, de sorte que vous remplacerez toujours un Alias. Cependant, une correspondance mod_rewrite RewriteRule correspond à l'URL-Chemin après La demande a été mappée sur le système de fichiers, il ne correspond pas à la source d'un Alias - sauf , le RewriteRule est utilisé directement dans le contexte de configuration du serveur ou de Vhost, auquel cas Matchs contre le chemin de l'URL avant , le requérant a été mappé au système de fichiers. Mais même à ce moment-là, vous pouvez baser la redirection sur le REQUEST_URI variable de serveur, qui contient l'URI, pas la cartographie du système de fichiers.)

Je suppose que le but de la redirection est de ...

  1. Modifiez l'URL dans votre application de /usage à /some-usage
  2. Rediriger/usage à /some-usage Afin de préserver le référencement, si /usage était déjà indexé/lié à (remplacer le Alias). ... ce n'est pas nécessairement une partie essentielle du puzzle, à moins que le référencement ne soit une préoccupation.

Puisque # 2 remplace le Alias De toute façon, il est beaucoup plus préférable de modifier l'URL de webalizer, comme mentionné dans la première partie de ma réponse.

2
MrWhite