2011-06-29 4 views
0

.htaccessS'il vous plaît me aider à trouver ce qui ne va pas avec ce .htaccess

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ ./rewrite.php?p=$1&%{QUERY_STRING} [L] 
</IfModule> 

rewrite.php

<?php 
print_R($_GET);die; 
?> 

Cela fonctionne correctement sur mon ordi local et sur beaucoup d'autres serveurs. Mais sur un serveur godaddy il y a un problème. URL comme celui-ci obtient traitée avec succès

site.com/search/action/browse 
Array ([p] => search/action/browse) 

Mais cette URL a un problème

site.com/index/country/United-States 
Array ([p] => missing.html) 

Il n'y a pas d'index/répertoire dans la racine du site. Il y a un fichier index.php cependant. J'ai essayé de passer par le panneau de contrôle godaddy mais je n'ai rien trouvé à propos de missing.html. S'il vous plaît laissez-moi savoir vos pensées parce que je suis à court d'idées.

+1

Sans lien avec le problème, mais je pense que vous pouvez utiliser [L, QSA] au lieu d'ajouter '&% {QUERY_STRING}' –

+0

vous pouvez utiliser cette technique de type: http://www.askapache.com/htaccess/ crazy-advanced-mod_rewrite-tutorial.html pour obtenir un bon debug de certaines variables mod_rewrite dans le tableau $ _SERVER. May vous donne des indices sur ce qui s'est passé dans le processus de réécriture. Une autre règle de réécriture est certainement appliquée avant la vôtre. La meilleure chose serait de modifier rewriteLog et rewriteLogLevel pour obtenir la trace. – regilero

+1

@Eugene Voyez-vous une différence si vous ajoutez cette ligne: 'Options -MultiViews'? Je ne pense pas vraiment que cela devrait fonctionner, donc juste un commentaire. – LazyOne

Répondre

1

LazyOne: vous êtes une légende: J'ai eu ce problème pendant des mois et le merveilleux "Options -MultiViews" m'a sauvé.

Questions connexes