THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour à tous,

J'ai l'impression que le système d'url rewriting propre à Thélia empêche le serveur nginx/php-fpm de faire son boulot, renvoyant sur des 404.
Par contre nickel sur les pages sans url rewriting de type ?fond=

Vous confirmez ?

merci à vous,

A bientôt,

LeHibou

Last edited by LeHibou (24-01-2013 15:12:28)

  • manu
  • faï tot petar miladiu

Offline


Jamais mis en place du nginx du coup j'ai pas de réponse :-)


http://doc.thelia.net/
http://thelia.net/modules
http://raynaud.io
PGP public Key : 0xC6E546A6

Offline


Entre temps, j'ai trouvé, je vous prépare un petit fichier de configuration basique.

Dans.. 5 min.

Me revoilà :
Suite et fin :

server {
	listen   80; ## listen for ipv4; this line is default and implied
	#listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
	server_name www.mysite.com;
	server_tokens off;
	autoindex off;
	root /path/to/www.mysite.com;
	index index.php;
	port_in_redirect off;

	
	#ce qu'on fait ici est très simple : on fait une recherche sur les fichiers, ou les dossiers; si on a aucun des deux, on passe au handler.
	location / {

		try_files $uri $uri/ @handler;


		}
	#.. qui lui exécutera la réécriture. cela revient au même que le rewrite cond/rule d'Apache.
	location @handler {

		rewrite  ^/(.*)$ /index.php?url=$1  last;
		    break;
	}



	location ~ /\. {
		access_log off;
		log_not_found off; 
		deny all;
	}
	#ici on fait une connection par socket. rempalcer par votre port si vous préférez le tcp.
	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}

}

Enjoy !

j'ai fait des test sur une install de base, tout à l'air fonctionnel. Pour le sbesoins plus exotiques, il faudra définir les locations voire les servers.

Mais là, ce n'est plus le même problème.

J'ai pensé que cette petite introduction pouvait faire du bien à la communauté Thélia car cela ouvre les portes à des projets d'envergure.

A bientôt,

LeHibou

Last edited by LeHibou (24-01-2013 15:10:09)

Offline


Tiens, tu as ici un convertisseur htaccess -> config nginx: http://winginx.com/htaccess


OpenStudio Toulouse

Offline


merci Roadster,

Mais ces convertisseurs ne sont pas bons : ils forcent souvent les fameux "ifs-qui-font-bien-mal".
Et sous nginx, cela ne pardonne pas.

Il m'a donc fallu chercher:trouver une solution très cpu-friendly.

A bientôt,

LeHibou

Offline


hello, je déterre ce post ayant besoin de faire tourner Thelia sur nginx. je n'y arrive pas ni avec la soluce de Hibou, ni avec le convertisseur..
du coup, je ne sais que faire...
Un conseil (difficile sans connaitre le serveur j'imagine) ?

Last edited by lull (12-10-2015 08:51:55)

  • gugu
  • Administrateur

Offline


Il y a cet exemple de configuration sur le site de la doc de Thelia : http://doc.thelia.net/en/documentation/ … figuration

Offline


Merci GUGU j'ai essayé, il doit me manquer une connerie, ça ne fonctionne pas... je dois en parler à mon infogérant, quand il sera dispo pour ça. je vous tiendrez au courant de ce qui ne vas pas dans mon cas...

Offline


Alors pour info, j'ai trouvé le problème, en fait mon serveur tourne avec Ajenti, alors si ça peut dépanner certains ayant la même config, il suffit de mettre dans "avancé > configuration personnalisée" ça :

rewrite ^/([a-z0-9-]*)__([0-9]*)_([a-z0-9-]*)_([0-9]*)\.html /contenu.php?id_contenu=$4 break;
rewrite ^/([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)_\.html /rubrique.php?id_rubrique=$2 break;
rewrite ^/([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_\.html /rubrique.php?id_rubrique=$2 break;
rewrite ^/([a-z0-9-]*)_([0-9]*)_\.html /rubrique.php?id_rubrique=$2 break;
rewrite ^/([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)__([^.]*)\.html /produit.php?ref=$5&id_rubrique=$2 break;
rewrite ^/([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)__([^.]*)\.html /produit.php?ref=$4&id_rubrique=$2 break;
rewrite ^/([a-z0-9-]*)_([0-9]*)__([^.]*)\.html /produit.php?ref=$3&id_rubrique=$2 break;

et ça fonctionne.