2009-08-13 4 views
0

Je suis aux prises avec les règles de réécriture .htaccess. Disons que j'ai cette URL.Règle de réécriture htaccess ne pas charger le contenu du site

localhost/site/index.php 

et je veux réécrire comme cette URL

localhost/site/tutorial 

J'utiliser ce RewriteRule

Options +FollowSymLinks 
RewriteEngine on 

RewriteRule ^tutorial/(.*)$ /up/index.php 

La page fonctionne, mais les fichiers CSS ne se charge pas.

De plus, si j'ai une URL comme ceci:

index.php?page=home 

Ensuite, je dois analyser à travers cette URL pour obtenir « la maison » ne pas utiliser $ _GET plus correct ??

+2

Pour mémoire, la grammaire est pas de style. –

+0

où est votre fichier css? pourquoi vous attendez-vous à travailler avec un tel 'RewriteRule'? – SilentGhost

Répondre

0
Options +FollowSymLinks 
RewriteEngine on 

RewriteRule ^tutorial/(.*)$ /up/index.php 

Cela va réécrire tout ce qui va dans le répertoire tutoriel comme /up/index.php, ce qui signifie que si vous hébergez votre fichier CSS à cet endroit, il ne fonctionnera pas. Si votre fichier css est à /tutorial/css.css, il rediriger vers /up/index.php

Vous devrez analyser par le% queryString% pour redirect sur la base index.php?page=home

0

Ainsi, les fichiers CSS ne sont pas en train de charger parce que vous changez l'emplacement du fichier servi.

Donc, si vous liez ./css/style.css => ^/tutorial/css/style.css n'est pas la même chose que /up/css/style.css

Et vous pouvez conserver la obtenir si vous réécrivez:

RewriteRule ^tutorial/(.*)?(.*)$ /up/index.php?$2 
1

Il suffit d'utiliser des URL absolues pour votre fichier CSS, ou au moins référence de la racine de domaine.

http://www.mysite.com/css/myCssFile.css 

ou

/css/myCssFile.css 
Questions connexes