Pas Tout A Fait

Aller au contenu | Aller au menu | Aller à la recherche

Yourls avec NGinx

Dernière mise à jour le 15 décembre 2011

Yourls est un ensemble de petits scripts PHP pour raccourcir les URLs. Il nécessite l'utilisation de la réécriture d'URL, et contient les règles pour Apache. Par contre, pas d'explication pour le serveur web NGinx.

yourls-logo.jpg

Les règles pour Apache sont les suivantes si Yourls est installé à la racine de l'espace web :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /yourls-loader.php [L]
</IfModule>

Plusieurs méthodes sont fonctionnelles, toujours pour un Yourls répondant à la racine de l'espace web, avec NGinx. Chez moi, seule la version moyenne fonctionne correctement, les deux autres présentent soit un problème avec les liens raccourcis, soit avec les liens de statistiques disponibles dans l'interface d'administration de Yourls.

  • La longue
        location / {
        if (!-f $request_filename){
                set $rule_0 1$rule_0;
                }
        if (!-d $request_filename){
                set $rule_0 2$rule_0;
                }
        if ($rule_0 = "21"){
                rewrite ^/.* /yourls-loader.php last;
                }
        }
  • La moyenne
        if (!-e $request_filename) {
                rewrite ^/([0-9a-z]+)/?$ /yourls-go.php?id=$1 last;
                rewrite ^/([0-9a-z]+)\+/?$ /yourls-infos.php?id=$1 last;
                rewrite ^/([0-9a-z]+)\+all/?$ /yourls-infos.php?id=$1&all=1 last;
                }
  • La courte
        location ~ ^/([\da-z]+)/?$ {
                try_files $uri $uri/ /yourls-go.php?id=$1;
                }

Ces lignes sont à mettre dans le fichier de configuration du vhost qui accueille Yourls, comme dans l'exemple ci-dessous :

server {
        listen          1.2.3.4:80;
        server_name     domain.tld;
        root            /var/www/domain.tld/www;

        # Static
        location / {
                index  index.html index.htm index.php;
        if (-f $request_filename) {
                expires max;
                break;
                }
        if (!-e $request_filename) {
                rewrite ^/([0-9a-z]+)/?$ /yourls-go.php?id=$1 last;
                rewrite ^/([0-9a-z]+)\+/?$ /yourls-infos.php?id=$1 last;
                rewrite ^/([0-9a-z]+)\+all/?$ /yourls-infos.php?id=$1&all=1 last;
                }
        }

        access_log      /var/log/nginx/domain.tld_access.log combined;
        error_log       /var/log/nginx/domain.tld_error.log;

        location ~ \.php$ {
                 fastcgi_pass   127.0.0.1:9000;
                 fastcgi_index  index.php;
                 include fastcgi_params;
                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        location ~ /\.ht {
            deny  all;
        }

        location ~* ^.+\.(jpg|jpeg|png|gif|xml|css|js)$ {
                expires         20d;
        }
}

Et hop, voilà un Yourls qui marche du tonnerre avec NGinx !

Matthieu Patout

Auteur: Matthieu Patout

Restez au courant de l'actualité et abonnez-vous au Flux RSS

Soyez le premier à réagir sur cet article

Ajouter un commentaire Fil des commentaires de ce billet

aucune annexe



Voir Aussi

zen-coding-logo.png

Activer ZenCoding dans Geany sous Debian Squeeze

Zen Coding est une extension existante pour les principaux éditeurs de textes et IDE, qui vise à...

Lire la suite

awstats_logo4.png

Installation et configuration de AwStats sur Debian Squeeze

AWStats est un analyseur de log web, ftp et mail, écrit en Perl et disponible sous licence GPL. Il...

Lire la suite


Découvrez le Nouveau « Pack Liberté »