2008-12-01 7 views
1

Ok J'ai cette RewriteRule qui est censée rediriger toute requête pour le fichier base.css vers {dossier du fichier .htacces} /include/style/base.css, mais ne cesse de rediriger dans une boucle infinie, Je pensais que le paramètre L ferait en sorte que cela n'arriverait pas.RewriteRule redirect

RewriteRule (.*)/base.css$ include/style/base.css [L,NC,R=301] 

redirige également à http://localhost/C:/somemaps/include/style/base.css dont il est pas vraiment censé faire non plus.

Quelqu'un peut-il me dire comment résoudre ce problème?
Aussi je voudrais avoir le RewriteRule afin qu'il redirige tout fichier.css à {dossier du fichier .htacces} /include/style/file.css
BTW le fichier .htacces est dans la racine du site Web (qui n'est pas la racine du serveur!)

Répondre

2

Vous avez Redirect et réécrivez confus. Une redirection est un code d'état HTTP qui indique au navigateur d'accéder à une autre URL. En fait, vous voulez juste réécrire l'emplacement à un autre emplacement de fichier. Essayez

RewriteRule (.*)/(.*).css$ /include/style/$2.css [L,NC] 

Si cela ne fonctionne pas, essayez ce qui suit juste après la RewriteEngine On

RewriteBase /my-virtual-folder-path-where-htaccess-is-stored 
+0

mm, ne fonctionne pas. –

+1

Vous allez devoir être plus précis, à propos de ce qui ne fonctionne pas. Vous devrez peut-être utiliser RewriteBase pour obtenir le chemin d'accès correct au fichier/include/style. –

+0

Merci, vous et Eli vraiment aidé! –

1

Cette R = 301 fait une nouvelle demande. Par conséquent, il évalue à nouveau le RewriteRule.

Essayez d'exclure ce chemin/répertoire avec une condition de réécriture (RewriteCond).

+0

Je ne pense pas qu'il essayait de faire une redirection, parce que cela n'aurait aucun sens de rediriger un fichier de feuille de style. Je pense qu'il voulait juste une ancienne réécriture physique du chemin de fichier. –

2

Aussi je voudrais avoir la RewriteRule donc il rediriger tout file.css à {dossier du fichier .htaccess} /include/style/file.css

Essayez ceci:

RewriteRule ([^/]+).css$ /include/style/$1.css [L,NC] 
+0

merci beaucoup. –

+0

et notez que vous * réécriture * l'URL (chaning comment les processus Apache), pas * * redirigeant il (dit le navigateur, il est déplacé). C'est une différence cruciale dans la compréhension de mod_rewrite. – Eli