2009-07-21 7 views
0

J'ai cette règle de réécriture pour accéder profile.php? User = nom d'utilisateur avec mysite.com/username ..problème mod_rewrite

problème est qu'il ne tient pas compte de mon css, même si j'utilise l'URL complète et ce qui est bizarre est que c'est la même chose si je vais à l'URL régulière, profile.php? user = nom d'utilisateur. Mais si je supprime mon fichier htaccess, le css fonctionne.

RewriteEngine on 
RewriteRule (.*) profile.php?user=$1 [QSA,L] 

Quel est le problème ici? Merci à l'avance:>

Répondre

2

Vous pouvez utiliser une condition pour que le feu de votre règle si l'URL que vous essayez de chercher ne résout pas à un fichier ou un répertoire

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) profile.php?user=$1 [QSA,L] 

Cela arrêtera une demande de foo .css en cours de réécriture en tant que profile.php? user = foo.css

0

Votre règle va réécrire toute requête, même la demande de votre fichier css.

Vous aurez également besoin d'un RewriteCond comme ceci:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) profile.php?user=$1 [QSA,L] 

Ceci redirigera que s'il n'y a pas de fichier qui correspond à la demande.

0

Rappelez-vous que la demande pour le fichier CSS est une demande aussi, et votre règle est en train de réécrire la demande de whatever.css-profile.php?user=whatever.css