Nginx hints / aide
Mon objectif était :
- Si on tape l’URL sans le
/
à la fin, il redirige en ajoutant le /
à la fin
- Si on tape l’URL avec le
/
à la fin, tout doit fonctionner
- Tout ne doit être que statique et les fichiers doivent obligatoirement exister, sauf
index.html
et index.htm
J’en suis donc arrivé à ces règles, plus « proches » de la configuration possible dans Nginx :
- Filtre « custom » avec
/
à la fin. Si oui, n’accepter que index.html
ou index.htm
- Filtre « custom » en ignorant le
/
à la fin. Si oui, le nom, qui doit être forcément un fichier, sinon, rediriger en ajoutant un /
pour qu’il reboucle au début
location ~* ^/unity/(?<p>.+)/$ {
root /web/htdocs/unity;
try_files /$p/index.html /$p/index.htm /$p =403;
access_log off;
expires 1h;
}
location ~* ^/unity/(?<p>.+) {
root /web/htdocs/unity;
try_files /$p $p @redirect_with_slash_at_the_end;
access_log off;
expires 1h;
}
location @redirect_with_slash_at_the_end {
return 301 $scheme://www.mywebsite.com$request_uri/;
}
A chaque fois que vous vous connectez, vous avez vos bases en utf8 mais lors de votre requête vous avez des caractères hyéroglyphes.
Et vous devez taper l’ordre « set names utf8
» à chaque fois.
Vous en avez assez ? Voici la solution :
Éditez votre fichier de configuration de mysql et ajoutez ces lignes :
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_unicode_ci
Attention ! C’est très important de mettre les directives après le type de connexion. Par exemple, sur ma configuration ça donne au final :
19 [client]
20 port = 3306
21 socket = /var/run/mysqld/mysqld.sock
22 # (!) Olivier Pons / 20-03-2011
23 default-character-set = utf8
24
25 # Here is entries for some specific programs
26 # The following values assume you have at least 32M ram
27
28 # This was formally known as [safe_mysqld]. Both versions are currently parsed.
29 [mysqld_safe]
30 socket = /var/run/mysqld/mysqld.sock
31 nice = 0
32 # (!) Olivier Pons / 20-03-2011
33 character-set-server = utf8
34 collation-server = utf8_unicode_ci
35
36 [mysqld]
37 #
38 # * Basic Settings
39 #
40 user = mysql
41 pid-file = /var/run/mysqld/mysqld.pid
42 socket = /var/run/mysqld/mysqld.sock
43 port = 3306
44 basedir = /usr
45 datadir = /var/lib/mysql
46 tmpdir = /tmp
47 language = /usr/share/mysql/english
48 skip-external-locking
49 # (!) Olivier Pons / 20-03-2011
50 character-set-server = utf8
51 collation-server = utf8_unicode_ci
52 #
J’ai trouvé cet article ici, et je l’ai remis en Français, en espérant aider la communauté !