2013-02-28 4 views
0

Dans le passé, j'ai utilisé ce site plusieurs fois par le biais de Google et j'ai trouvé une aide utile pour résoudre les problèmes. Maintenant, je veux poser ma propre question et donc enregistré. Alors, "Salut tout le monde!"htaccess/rewriterule et dossier virtuel

Mon "problème" implique htaccess-rewriterule et PHP/HTML. Disons que j'ai une URL "http://www.mydomain.com/showdata.php?ID=9" et je veux réécrire est comme "http://www.mydomain.com/person/firstname-lastname-9.php". Mon plan était que "personne" serait juste un répertoire virtuel. La partie rewriterule avait pas de problème:

RewriteRule ^person/(.*)-(\d+)\.php$ /showdata.php?ID=$2 

La nouvelle URL mène à l'entrée dans la droite base de données MySQL. Le problème est que les fichiers CSS ne sont pas chargés et tous les liens dans la navigation pointent vers le dossier "personne". Je pensais que je pourrais "lier" à un dossier virtuel, parce que le htaccess mènerait le navigateur au vrai dossier sur le serveur. Je pourrais en fait créer le dossier "person" et y copier des fichiers include, mais cela signifierait que je dois changer beaucoup de chemins dans mon code source. C'est beaucoup de travail désordonné et je préfère éviter cela. Existe-t-il un moyen d'avoir un dossier virtuel (pour les mots-clés), mais le script php inclut-il toujours les fichiers du dossier principal?

+0

Pourquoi ne pas simplement réécrire à showdata.php? Ainsi, l'utilisateur voit 'http: // www.mydomain.com/person/firstname-lastname-9' mais le serveur voit' http: //www.mydomain.com/showdata.php? ID = 9' – Leeish

+0

Vous cherchez pour '' – mario

+0

J'ai des pages avec des liens d'ancre et j'ai lu que ne fonctionne pas bien avec les ancres. – Leveller

Répondre

0

Ajouter plus de règles pour css, js et images ..

Je suppose que votre css/js/images sont dans des dossiers avec des noms "css", "js", "images"

par exemple

RewriteRule (.*)/(images|css|js)/(.*) /$1/$2 [L] 
# | means OR , [L] means last rule i.e. do not continue to process other rules after this. 
+1

Un 'RewriteCond' pourrait être plus facile dans de tels cas. – mario

Questions connexes