2010-04-14 8 views
4

Cela peut sembler une question stupide, mais je ne peux pas le comprendre. Disons que j'ai un dossier public_html avec différents dossiers comme: Albatros, Blackbirds, Crows et Faqs.Réécrire les règles pour les sous-dossiers

Je veux faire en sorte que tout le trafic à Albatross/faqs.php, Blackbirds/faqs.php, Crows/faqs.php etc. verra le fichier qui est à faqs/faqs.php? Bird = albatross ou faqs /faqs.php?bird=crows ou qu'est-ce que vous avez.

Si je vais dans le fichier .htaccess de dossier Albatross Je peux le faire

RewriteRule faqs.php$ /faqs/faqs.php?cat=albatross[QSA] 

Ce qui fonctionne très bien, mais je veux mettre quelque chose dans les .htacces de haut niveau qui fonctionne pour tous, donc essayé :

RewriteRule faqs.php$ /faqs/faqs.php?cat=albatross[QSA] 

RewriteRule /(.*)/faqs.php$ /faqs/faqs.php?cat=$1 [QSA] 

et même

RewriteRule /albatross/faqs.php$ /faqs/faqs.php?cat=albatross [QSA] 

et divers autres, mais rien ne semble fonctionner, quand je vais à http://www.birdsandwhatnot.com/albatross/faqs.php, je vois le même fichier de la même manière qu'il l'a toujours été. La présence d'un fichier .htaccess dans le sous-dossier est-elle en conflit avec le fichier .htaccess supérieur?

Ai-je raté quelque chose?

+0

Le premier problème est que votre serveur est arrêté. :) – David

+0

Haha J'utilise habituellement chuckecheese.com ou illegalbusiness.ru comme exemples! –

+0

example.com est un bon exemple ... – jezmck

Répondre

2

Une petite correction devrait faire l'affaire

RewriteEngine on 

RewriteRule ^(.*)/faqs.php$ /faqs/faqs.php?cat=$1 [QSA] 

"/" n'est pas passé à l'analyseur.

Espérons que ça aide

+0

C'est ce que j'allais publier, sauf que je vais habituellement avec [QSA, L] pour m'assurer qu'aucun autre RewriteRules sur la ligne ne cause de problème. –

+0

Merci, mais cela n'a toujours aucun effet, je viens de voir la page d'origine. Je sais que mon .htaccess de haut niveau fonctionne parce que je l'utilise pour les 301, etc. Je l'ai essayé avec [QSA, L] à la fin aussi mais ça ne change rien. –

+0

Assurez-vous que vous avez activé le moteur de réécriture dans .htaccess RewriteEngine sur Assurez-vous également dans la configuration de votre serveur web (en supposant apache) que vous avez chargé mod_rewrtite. Si vous n'avez pas accès à la configuration, créez un script php simple, mettez phpinfo() puis vérifiez les modules chargés. – Pablo

Questions connexes