Bonjour je souhaite rediriger mes feuilles de style et mes fichier js

de: http://localhost/nomdusite/app/webroot/css/style.css
    vers: http://localhost/nomdusite/css/style.css

dans un fichier .htaccess

14 réponses


Nairolf
Réponse acceptée

Tu as juste besoin de ce code dans le fichier .htaccess qui se trouve à la base de ton dossier "nomdusite".

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*).js app/webroot/$0
RewriteRule (.*).css app/webroot/$0 [L]

Bon RewriteEngine On c'est pour activer l'url rewriting
RewriteCond %{REQUEST_FILENAME} !-f permet de savoir si le fichier exite ou non, le paramètre -f vérifie si le fichier existe donc avec le ! devant, ça fait le contraire, donc vérifie qu'il n'existe pas.
Si il n'existe pas, on pas à la suite, qui est la même chose mais pour un dossier.
Enfin si le fichier ou dossier n'existe pas à la racine on passe à la suite qui est de rediriger vers le dossier app/webroot.

Pour titre d'exemple, si tu as cette organisation:

app
    |webroot
        |css
            |style1.css
            |style2.css
|css
    |style2.css
.htaccess

Si tu tapes http://localhost/nomdusite/css/style1.css

Alors il vas prendre le style qui se trouve dans app/webroot/css car à la base du site dans css il y a aucun fichier nommé style1.css

Mais si tu tapes http://localhost/nomdusite/css/style2.css

Là il vas prendre celui à la base car il existe.

Sinon si il en existe aucun, tu vas tombé sur une belle erreur 500. Pour éviter ça tu met le même .htaccess mais au lieu de rediriger sur le dossier tu redirige vars une page 404.

Montre le code que tu as commencé à écrire :)

vavoir
Auteur
RewriteRule (^a-zA-Z].css)$ app/webroot/$1 [L]
vavoir
Auteur

@Nairolf merci beaucoup cela fonctionne à merveille et cela ne gêne même pas mes réécriture d'url. Pour info toute mes erreur 400 et autre sont rediriger vers un fichier 400.php qui se charge de traiter toute les erreurs 400 il en est de même pour les erreur 500

Ok tant mieux si tu t'es déjà occupé des erreurs.

vavoir
Auteur

Bonsoir,

J'ai voulu l'appliquer à un deuxième site avec la même architecture mais il me revoie une erreur 500

fichier .htaccess

# URL Rewriting
#----------------------------------------------------------------------
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*).js app/webroot$0
RewriteRule (.*).css app/webroot$0 [L]
RewriteRule ^(^/]*)\/$ ***.php?pages=$1 [QSA,L]
# Error Document
#----------------------------------------------------------------------
ErrorDocument 401 /www.alexandre-houdot.fr/error/400.php?type=401
ErrorDocument 403 /www.alexandre-houdot.fr/error/400.php?type=403
ErrorDocument 404 /www.alexandre-houdot.fr/url.php?pages=400&type=404
ErrorDocument 408 /www.alexandre-houdot.fr/error/400.php?type=408
ErrorDocument 500 /www.alexandre-houdot.fr/error/500.php?type=500

# Indexation des répertoires
#----------------------------------------------------------------------
Options -Indexes
DirectoryIndex index.php index.html

J'ai installé firebug si sa peut aidé, mais je sait pas l’utilisé.

Tu as oublié un / après webroot dans tes règles, je sais pas si c'est la cause du problème mais essaye déjà ça.

vavoir
Auteur

non même en ajoutant un / il ne veut rein savoir

# URL Rewriting
#----------------------------------------------------------------------
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*).js app/webroot/$0
RewriteRule (.*).css app/webroot/$0 [L]
# Error Document
#----------------------------------------------------------------------
ErrorDocument 401 /www.alexandre-houdot.fr/error/400.php?type=401
ErrorDocument 403 /www.alexandre-houdot.fr/error/400.php?type=403
ErrorDocument 404 /www.alexandre-houdot.fr/url.php?pages=400&type=404
ErrorDocument 408 /www.alexandre-houdot.fr/error/400.php?type=408
ErrorDocument 500 /www.alexandre-houdot.fr/error/500.php?type=500

# Indexation des repertoires
#----------------------------------------------------------------------
Options -Indexes
DirectoryIndex index.php index.html

Bonjour,

Pourquoi ne pas simplement modifier la configuration du serveur HTTP pour définir "webroot" comme dossier principal ?
Pour Apache, il s'agit de la directive DocumentRoot (voir les "VirtualHost").

vavoir
Auteur

@Dylan Car je ne sait pas comment on fait sa ^^

Juste un commentaire: Si tu comptes ouvrir un site pro, évite à tout prix les fautes de grammaire/orthographe.
Tes divers sites en sont bourrés.. ça ne fait pas "sérieux".

vavoir
Auteur

@Thokki merci :), je suit déjà au courant de se problème que je suis en train de réglé

On va commencer l'initiation alors ;) .
Je "suis" du verbe suivre.
Ce problème et non "se" en effet "se" est utilisé devant un verbe en tant que pronom.
"Ses" lorsque tu déclares une possession: ses chaussures, ses vêtements...
"Ces" quand tu désignes un objet sans en désigner le propriétaire: ces choses étranges...
Régler et non réglé pour savoir si tu dois mettre l'accent ou non tu remplaces par prendre ou finir.
Je suis en train de finir donc indicatif donc régler/ Je suis en train de finis incohérent donc ce n'est pas "réglé".

Lorsque la phrase ne veut plus rien dire une fois le verbe remplacé par prendre ou finir tu peux t'autoriser à remplacer tout ce qui n'est pas un verbe.

Ce sont des conseils bien utiles ;) .

Dernière astuce:
a et à, on met a lorsqu'on peut remplacer le a/à par le verbe avoir admettons:
Il a de l'argent ==> Il avait de l'argent c'est bien du verbe avoir.
Il va à l'école ==> Il va avoir l'école ok c'était un piège ;) tu désignais ici un lieu donc à.

Autrement dit lorsque tu ne peux pas remplacer par le verbe avoir ou que c'est un lieu tu mets "à" sinon "a".

@vavoir: Pas de soucis. Si tu veux un conseil: Fais toi relire par une autre personne, pars du principe que l'on est toujours d'accord avec soi-même, donc un regard neuf, permet de voir des choses zappées.. principe des relectures croisées !
Bon courage pour la suite.