.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.
Sans lien avec le problème, mais je pense que vous pouvez utiliser [L, QSA] au lieu d'ajouter '&% {QUERY_STRING}' –
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
@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