Sam & Max » apache http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Servir les fichiers statiques Django avec un .htaccess Apache 4 http://sametmax.com/servir-les-fichiers-statiques-django-avec-un-httaccess-apache/ http://sametmax.com/servir-les-fichiers-statiques-django-avec-un-httaccess-apache/#comments Fri, 30 Aug 2013 18:14:43 +0000 http://sametmax.com/?p=7235 comment servir les fichiers statiques Django, mais j'ai réalisé ensuite que les gens n'avaient pas forcément accès aux fichiers de configuration du serveur.]]> Servir le Javascript, les images et le CSS avec Django a toujours été une grande question pour les débutants.

J’avais fais un giga article pour expliquer comment servir les fichiers statiques avec ce framework, mais j’ai réalisé ensuite que les gens n’avaient pas forcément accès aux fichiers de configuration du serveur.

Parfois, tout ce qu’ils ont c’est un pauvre fichier .htaccess. Tout n’est pas perdu, avec une petite règle de rewrite :

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteRule /static/ /chemin/vers/dossier/racine/apache/static
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ site.fcgi/$1 [QSA,L]

Attention à ce que /static/ corresponde bien à l’arborescence complète de sous dossiers de /chemin/vers/dossier/racine/apache/ et à settings.STATIC_ROOT.

Par exemple :

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteRule /sous/dossier/static/ /chemin/vers/dossier/racine/apache/sous/dossier/static
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ site.fcgi/$1 [QSA,L]

Et settings.STATIC_ROOT = "/sous/dossier/static/".

En effet, on fait un rewrite ici, on ne sert pas le sous dossier directement.

P.S: ça va sans le dire, mais ça va mieux en le disant, c’est de la prod, donc faut faire un manage.py collecstatic avant, et s’assurer d’avoir les bonnes valeurs pour settings.STATIC_ROOT et settings.STATIC_URL/

]]>
http://sametmax.com/servir-les-fichiers-statiques-django-avec-un-httaccess-apache/feed/ 4
Redirection de “www” pour Apache, Nginx et Lighttpd 8 http://sametmax.com/redirection-de-www-pour-apache-nginx-et-lighttpd/ http://sametmax.com/redirection-de-www-pour-apache-nginx-et-lighttpd/#comments Wed, 06 Jun 2012 01:44:39 +0000 http://sametmax.com/?p=870 Une fois que vous avez décidé si votre nom de domaine allait être précédé ou non de “www”, il va falloir vous y tenir. Il va aussi falloir créer une redirection de l’un vers l’autre. Cela est en effet nécessaire pour éviter que les moteurs de recherche ne considèrent qu’il y a du contenu dupliqué, mais aussi parceque certains outils (je ne vise personne en particulier, et sûrement pas l’admin WordPress) utilisent parfois les mauvaises URLs.

Rediriger “www” avec Apache

On peut mettre la redirection dans les fichiers de configuration Apache, mais le plus simple est de créer un fichier .htaccess dans le dossier qui contient tout le code de votre site Web, et d’y mettre le code qui gère la redirection.

Pour rediriger de “www” vers l’adresse sans “www”


RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,L]

Pour rediriger l’adresse sans “www” vers “www”

RewriteEngine On
RewriteCond %{HTTP_HOST} ^votresupersiteweb\.com$ [NC]
RewriteRule ^(.*)$ http://www.votresupersiteweb.com/$1 [R=301,L]

Pour que la redirection marche, il faut vous assurer que le module mod_rewrite d’Apache est installé et activé, ce qui est la cas dans la plupart des installations et hébergeurs par défaut.

Rediriger “www” avec Nginx

Il faut mettre la redirection dans le fichier de configuration de votre site, généralement situé dans /etc/nginx/conf.d/. Vous avez besoin que nginx soit compilé avec le module rewrite, ce qui est le cas par défaut.

Pour rediriger de “www” vers l’adresse sans “www”

server {
listen 80;
server_name www.votresupersiteweb.com;
rewrite ^/(.*) http://votresupersiteweb.com/$1 permanent;
}

Pour rediriger l’adresse sans “www” vers “www”

server {
listen 80;
server_name votresupersiteweb.com;
rewrite ^/(.*) http://www.votresupersiteweb.com/$1 permanent;
}

Si vous avez déjà un bloc “server”, mettez celui-ci au dessus du précédent. Redémarrez Nginx pour que les changements soient pris en compte.

Rediriger “www” avec Lighttpd

Assurez vous que le module “mod_redirect” est activé dans le fichier de configuration de Lighttpd.
This trick requires mod_redirect module. You should put it close to the top of the configuration file before other redirect or rewrite rules.

Pour rediriger de “www” vers l’adresse sans “www”

$HTTP["host"] =~ "^www\.(.*)$" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}

Pour rediriger l’adresse sans “www” vers “www”

$HTTP["host"] =~ "^votresupersiteweb\.com$" {
url.redirect = ( "^/(.*)" => "http://www.votresupersiteweb.com/$1" )
}

Redémarrez Lighttpd pour que les changements soient pris en compte.

]]>
http://sametmax.com/redirection-de-www-pour-apache-nginx-et-lighttpd/feed/ 8