2010-04-23 7 views
2

Si je souligne:Apache charge tout fichier commençant par la même chaîne que celle utilisée dans l'URL. Comment éviter cela?

mywebsite.com/search

et il y a un fichier appelé search.php ou search.html ou search.inc.php ou recherche .whatthehell.php dans le répertoire du site, Apache pointera vers ce fichier au lieu de 404'ing.

Ce qui est encore plus ennuyeux est que si je tiens à:

mywebsite.com/search/string?also=whatever

Apache affiche toujours un fichier avec le nom de fichier qui commence par « la recherche ".

De plus, tous les RewriteRules avec des modèles contenant des noms de fichiers existant dans le répertoire sont ignorés/inutiles. J'utilise Apache 2 sur Mac, non modifié httpd.conf. Comment l'empêcher de rediriger mes URLs si librement?

+0

Avez-vous une mod_speling activé? – Cez

+0

Merci, mais c'est la même chose avec mod_speling désactivé. – MarshallBananas

+0

OK, avez-vous des modules de cache activés? Si c'est le cas, la désactivation de la mise en cache et de mod_speling cause-t-elle toujours ce problème? – Cez

Répondre

2

Vous devrez désactiver l'option MultiViews en utilisant la directive Options. C'est une fonctionnalité du module de négociation de contenu Apache, donc si vous n'utilisez pas mod_negotiation vous pouvez simplement le décharger.

http://httpd.apache.org/docs/2.0/content-negotiation.html

Exemple de désactiver MultiViews pour le répertoire/var/www:

<Directory /var/www/> 
    Options Indexes FollowSymLinks -MultiViews 
    AllowOverride None 
    Order allow,deny 
    allow from all 
</Directory> 

http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews

+0

C'est tout! Merci Monsieur. – MarshallBananas