2009-12-02 8 views
0

J'ai un système de réécriture en cours qui fonctionnait correctement. Fondamentalement, tout ce qui est dans l'url est passé comme une chaîne de requête à index.php, alors /dave/bob est réécrit à /index.php?page=dave/bob. Je traite de l'analyse de cela dans index.php. Voici mon .htaccess:mod_rewrite ne fonctionne pas régulièrement

RewriteEngine on 
RewriteRule ^([^\.]+)?$ index.php?page=$1 [L] 

Le problème que je vais avoir est que, parfois, l'URL affiche de manière incorrecte dans la barre d'adresse. Voir ces deux exemples: working et not working. Le même problème se produit avec la page de services. Pour ceux d'entre vous qui préfèrent ne pas visiter les liens externes, goldseal.skilldrick.co.uk/contact affiche goldseal.skilldrick.co.uk/contact/?page=contact dans la barre d'adresse.

Comme vous le voyez, je travaille actuellement dans un sous-domaine, qui est en train d'être redirigé vers un répertoire sous /public_html, en utilisant cpanel. Cela pourrait-il être la cause?

+0

I a ajouté le tag « apache » pour vous aider à trouver des gens qui peuvent répondre à votre question, s'il vous plaît revenir si ce n'est pas l'étiquette correcte pour votre question . –

+0

Y a-t-il une autre règle qui peut entrer en conflit avec celle-ci? – Gumbo

+0

Merci Pascal. @Gumbo Peut-être, mais pas sous mon contrôle (je suis sur un serveur partagé). – Skilldrick

Répondre

0

Ok, je suis un idiot, mais je l'ai compris! La raison pour laquelle services et contact causaient des problèmes était que j'avais déjà des répertoires sous public_html/goldseal appelés/services et/contact (d'une précédente incarnation du site), donc la règle de réécriture devenait confuse quand je le disais aller à/contacter.

Merci pour votre aide et désolé pour perdre votre temps: P

0

Essayez de mettre un "/" devant index.php.

+0

Non, pas de changement :( – Skilldrick

+0

Wow, aucune idée flippante - Je viens de le tester dans mon bac à sable et ça a bien fonctionné.Pour les fous rires, pouvez-vous mettre "& foo = bar" après "page = $ 1" et laissez-moi savoir ce qui se passe w/les deux URL? – malonso

+0

J'ai maintenant 'RewriteRule^([^ \.] +)? $ /index.php?page=$1&foo=bar [L]' mais toujours faire la même chose :(I ' Je suppose qu'il y a une sorte de réécriture conflictuelle qui se passe avec le sous-domaine qui cause des problèmes.Parmi un slash final sur l'url fonctionne! – Skilldrick

Questions connexes