Je travaille sur un site web sur ma machine locale en utilisant PHP.
Dans mon fichier .htaccess, j'ai la ligne suivante:.htaccess et la variable GET []
RewriteRule ^project-details/([a-zA-Z0-9-]+)/ project-details.php?pn=$1 [NC,L]
Sur la page produits, je les articles contenant un lien comme ./product-details/icecap-mouse249/
... que le fichier .htaccess à son tour prendre et attribuer " icecap-mouse249 "au" pn "trouvé à la fin de la ligne: ?pn=$1 [NC,L]
. Lorsque vous cliquez sur l'élément, la personne est alors redirigée vers la page des détails du produit. Dans cette page, j'ai la ligne suivante:
$pn = $_GET['pn'];
Cela permet à l'URI de tirer la valeur « pn » et l'affecter à la variable $pn
et utiliser la variable pour extraire des données à partir d'une base de données et afficher toutes les informations de ce produit particulier. Donc, cela fonctionne localement sur ma machine, mais quand je télécharge les fichiers, la page ne tire rien avec $_GET[pn]
.
Les travaux page Détails du produit parce que quand je hardcode la valeur à $pn
comme dans:
$pn = 'icecap-mouse249';
la page affiche correctement ... tirant les données de la db.
J'ai fait un phpinfo();
pour voir si le mod_rewrite est activé, mais la section "Modules chargés" de la page phpinfo ne s'affiche pas. J'ai fait un CTRL + F pour voir si je pouvais trouver le 'mod_rewrite' à travers l'outil FIND, mais rien ne s'affiche.
Ce qui me tracasse, c'est que cela fonctionne localement sur ma machine.
J'ai passé une heure avec mon fournisseur d'hébergement ... et ils n'ont pas aidé.
J'espère que je me suis expliqué correctement et que toute idée serait grandement appréciée. Je vous remercie.
Merci pour regarder par-dessus mon code. Tous mes fichiers sont dans le répertoire racine, avec le fichier .htaccess. La chose étrange est que les pages Web fonctionnent sur mon serveur local que j'ai sur mon ordinateur portable (XAMPP), il fonctionne sur le serveur GoDaddy (quand je l'ai eu là, mais j'ai depuis transféré sur 1and1) ... et c'est là ne fonctionne pas ... sur le serveur 1and1. J'ai parlé au service client, mais ils ne pouvaient pas faire beaucoup plus que juste confirmer si le mod_rewrite était activé sur la configuration d'apache; qu'ils ont dit qu'ils étaient. Donc, je suis déconcerté maintenant. – Lexiriam
J'ai édité la réponse. Essayez d'ajouter au fichier .htacces "Options -MultiViews et AllowOverride All". – docliving
J'ai essayé d'ajouter ce que vous avez recommandé et ne fonctionnait toujours pas. Je vais devoir continuer à dépanner. J'ai fait des recherches sur StackOverflow avec le même problème; malheureusement rien n'a fonctionné pour moi. Merci, de toute façon. – Lexiriam