2009-01-13 8 views
3

Pourquoi mon mod_rewrite fait-il cela?mod_rewrite 'ajouter un info sur le chemin postfix:'

add path info postfix: /home/mobelluk/public_html/about.php -> /home/mobelluk/public_html/about.php/ 

ce qui résulte en un slash final indésirable sur TOUT. J'ai désactivé toutes mes règles .htaccess pour qu'elles ne soient plus dans l'équation.

Répondre

2

Est-il possible que le nouveau serveur ait mod_dir chargé, avec DirectorySlash On où l'ancien serveur ne l'a pas été et qui est à l'origine de ce problème?

(Notez que DirectorySlash On est la valeur par défaut si mod_dir est chargé et rien est prépondérant qu'il)

+0

J'ai essayé, mais vérifier mon fichier journal montre qu'il ne fait aucune différence si son ou désactiver. Merci beaucoup cependant. –

17

apparemment il y a eu un problème avec mod_rewrite re-annexant une partie post-fix dans certains cas https://issues.apache.org/bugzilla/show_bug.cgi?id=38642

Le problème:

Si plusieurs RewriteRules dans un fichier .htaccess correspondent, des copies indésirables de PATH_INFO peuvent s'accumuler à la fin de l'URI.

Si vous êtes sur Apache 2.2.12 ou version ultérieure, vous pouvez utiliser le drapeau DPI pour éviter ce http://httpd.apache.org/docs/2.2/rewrite/flags.html

1

Je résolu ce problème en désactivant MultiViews dans ma configuration Options d'hôte virtuel. Je réécrivait quelque chose de similaire à ci-dessous:

rewrite désiré:

/dir/ -> /dir.html 

traductions réelles:

/dir/ -> /dir.html (MultiViews) 
/dir.html -> /dir.html/ (mod_rewrite: 404, didn't exist) 

gardé la désactivation MultiViews traduction initiale d'avoir lieu. J'aurais probablement pu ajuster la règle de réécriture pour compenser cela, mais je n'utilisais pas MultiViews pour rien d'autre de toute façon.

Le poste suivant m'a averti sur cette question: https://velenux.wordpress.com/2012/07/17/apache-mod_rewrite-multiple-add-path-info-postfix/#comment-1476

Questions connexes