Question

Après avoir téléchargé mon projet Kohana à mon serveur GoDaddy, je remarquai mon fichier .htaccess norme ne fonctionnait pas suffisamment pour fournir les URL propres. Après quelques conseils, j'ai fini avec la règle suivante:

RewriteRule .* index.php?kohana_uri=$0 [PT,L]

a mes belles-URL travailler à nouveau, mais aujourd'hui, je trouve que ce peut être briser mon interne moteur de recherche, qui utilise également GET style des variables:

/search?terms=php

Les valeurs ne sont pas trouvés par les scripts. Ils sont sur mon développement serveur qui ne dispose pas de la RewriteRule modifiée, mais pas sur le serveur Godaddy qui emploie le RewriteRule.

Ai-je raison de supposer que la règle est briser une capacité de scripts à lire à partir de $ _GET, et si oui, comment puis-je remédier à cette situation?

Était-ce utile?

La solution

Peut-être à l'aide QSA dans votre rewriterules, comme ceci:

RewriteRule .* index.php?kohana_uri=$0 [PT,QSA,L]

Voir la manuel mod_rewrite (citant):

  

'qsappend | QSA' (append chaîne de requête)

     

Ce drapeau force le moteur de réécriture pour ajouter une partie de chaîne de requête   de la chaîne de substitution à la   chaîne existante, au lieu de remplacer   il. Utilisez cette fonction lorsque vous souhaitez ajouter plus   les données de la chaîne de requête par l'intermédiaire d'une réécriture   règle.

pourrait aider (n'a pas été testé dans votre cas particulier, mais je me souviens avoir utilisé il y a quelque temps ce, pour une sorte de problème comme celui-ci)

Autres conseils

Je pense que vous pouvez ajouter: RewriteCond $1 !^(search), ou une variante de ces

.

Si vous voulez utiliser la pratique standard et sans chaîne de requête vous devez simplement suivre ces étapes et cela fonctionnera comme localhost Et vous ne devez pas modifier les règles de réécriture.

Accédez à votre gestionnaire de fichiers de compte GoDaddy -> Répertoire des WebRoot -> Créer php5.ini si elle n'existe pas et placer la ligne suivante: cgi.fix_pathinfo = 1

Maintenant, vous devez redémarrer votre processus Web:

1). Connectez-vous à votre gestionnaire de compte. 2.) Cliquez sur Web Hosting. 3.) À côté du compte d'hébergement que vous souhaitez utiliser, cliquez sur Lancer. 4.) Dans la section Statistiques et moniteurs, cliquez sur Processus système. 5.) Dans la liste à gauche, cliquez sur le processus que vous souhaitez afficher ou cliquez sur Tous les processus pour afficher tous les processus à la fois. 6.) Pour mettre fin à un processus, cliquez sur le bouton d'extrémité correspondante de la barre d'outils.

Vous pouvez maintenant utiliser URI_PROTOCOL comme Auto.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top