8722 sujets

Développement web côté serveur, CMS

Bonjour,
j'ai un serveur apache qui héberge plusieurs sites, le dossier /var/www/ contient plusieurs répertoires dont chacun d'entre eux contient un site, ainsi, le dossier /var/www/monsite1/www/ contient le site visible au domaine monsite1.fr
j'aimerais à présent réécrire les url de tous ces sites de telle manière que monsite1.fr devienne www.monsite1.fr
J'ai donc le htaccess suivant au répertoire /var/www/
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^   http://www.%{HTTP_HOST}%{REQUEST_URI}   [R=301,L]

Je pensais que le htaccess agirait récursivement, mais ça ne semble pas être le cas...

Merci de votre aide Smiley smile
Modifié par juliendargelos (13 Nov 2013 - 17:55)
Modérateur
Salut,

1. Le mieux est de faire un un site = un user (/home/un-site/). Ainsi, on ne peut pas remonter dans l'arbo et défoncer le système (créer une sorte de jail). Pour finir donner les droits (un-site:un-site) afin de mieux sécuriser le bousin Smiley cligne . Ainsi www-data:www-data n'aura aucun droit sur ton site.

2. Apparemment il y a un bon tuto ici pour l'url rewriting (perso, je fais différemment (class php ou mon framework)) :
http://craym.eu/tutoriels/referencement/url_rewriting.html.
Modifié par niuxe (13 Nov 2013 - 18:08)
J'ai suivi le tuto qui pour moi donne ça:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.[NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*)  http://www.%{HTTP_HOST}/$1  [L,R,NE]

Je ne pense pas que le problème vienne de mon htaccess, peut être de la config apache.
Ça m'embête un peu de prendre un système utilisateur/site car ça m'obligerait à créer un utilisateur par site, j'ai besoin que www-data puisse intervenir sur l'arborescence de mes sites, et mon système actuel est mis en place selon un environnement de gestion que j'ai terminé il y a peu, ça m'embêterais un peu de tout modifier maintenant.
Modifié par juliendargelos (13 Nov 2013 - 18:18)
Modérateur
juliendargelos a écrit :

Ça m'embête un peu de prendre un système utilisateur/site car ça m'obligerait à créer un utilisateur par site, j'ai besoin que www-data puisse intervenir sur l'arborescence de mes sites, et mon système actuel est mis en place selon un environnement de gestion que j'ai terminé il y a peu, ça m'embêterais un peu de tout modifier maintenant.


Admettons que dans ton /var/www/ tu aies :
- un joomla
- un wordpress

Le hacker trouve et exploite une faille dans un de ces sites (le lien parle de wordpress, mais Joomla a aussi des petits soucis). Il a les droits de www-data:www-data. Donc il peut défoncer ton /var/www voir faire d'autres dégâts un peu partout.

Maintenant, tu installes suExec et suPhp. Tu paramètres ces deux modules (y'a pas grand chose à faire à vrai dire)
- suExec : 2 lignes à remplacer
- suPhp : 2/3 lignes à paramétrer
Créer un user (adduser ....), placer un dossier (mkdir ...) www et créer un vhost.
(temps de la manip estimé à 1h pour la config. Après, ce sera 5 minutes maximum pour configurer un nouveau site)

Voilà comment cloisonner intelligemment et avoir une meilleur sécurité pour ton système de multi-sites Smiley cligne
Modifié par niuxe (13 Nov 2013 - 21:29)
Désolé de ne pas vouloir entendre raison, mais d'abord, mis à part phpMyAdmin, tout ce qui est sur mon serveur est de ma création (pas de Wordpress ou de joomla), et ensuite, il me parait assez normal de ne pas vouloir réduire à néant un travail assez conséquent sur un système suffisamment fiable pour protéger l'intérêt quasi-nul de hacker ma machine.
Si on pouvez se rapprocher du sujet original ce serait cool Smiley smile
Modérateur
Bonsoir.

Oui c'est possible, mais pas dans un .htaccess. En effet un htaccess n'a de portée que pour le <directory> d'un virtualHost. Pour effectuer une règle de rewrite global, il faut le faire dans la config globale de ton serveur, donc dans le http.conf

Enfin je n'ai pas testé, mais c'est ce que dit la doc sur la portée des rewriterules ( http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html ), c'est de toute façon plus propre de faire cette config dans chaque hôte virtuel pour éviter de devoir déboguer des réécritures d'url avec des directives disséminées çà et là.
Modifié par kustolovic (13 Nov 2013 - 23:02)
J'ai plus ou moins suivi ton conseil:
comme il était impossible de faire fonctionner ma règle de réécriture dans le apache2.conf (je ne saurais dire pourquoi), j'ai d'abord créé un fichier global-rewrite.conf au chemin /etc/apache2/, et j'ai l'ai inclus fichier dans chacun des fichiers de configuration de mes virtualHosts, ça fonctionne, et c'est plus facile à modifier.

Merci de ton aide Smiley smile
Modifié par juliendargelos (14 Nov 2013 - 17:54)
Si c'est juste pour répondre à la question du www ou pas www renvoyant sur le même site, ça ne serait pas plus logique de tout simplement ajouter un ServerAlias ?
Ca me paraît infiniment plus propre et plus simple que n'importe quelle redirection ou réécriture.
Modérateur
Le serverAlias est lui aussi nécessaire, mais ne fait pas de redirection. Donc le site risque d'être indexé deux fois par les moteurs de recherche. Un redirect permanent est plus propre (et n’affranchis pas du serverAlias) et permet d'éviter de devoir déclarer à chaque moteur de recherche que c'est le même site.

a écrit :
j'ai d'abord créé un fichier global-rewrite.conf au chemin /etc/apache2/, et j'ai l'ai inclus fichier dans chacun des fichiers de configuration de mes virtualHosts, ça fonctionne, et c'est plus facile à modifier.

Ah ben c'est pas bête, et ça permet de pouvoir toujours gérer au cas par cas au cas où Smiley langue
a écrit :
le site risque d'être indexé deux fois par les moteurs de recherche

Je ne pense pas, ils sont suffisament intelligents pour ne pas indexer 2 fois le même contenu.

Par exemple dans Google webmaster tools, on peut choisir si on préfère la version avec ou sans www . S'ils le proposent, c'est bien parce qu'ils savent que souvent, c'est le même site.

JE ne suis pas expert en SEO, mais je ne vois franchement pas l'utilité.
Modifié par QuentinC (15 Nov 2013 - 05:53)
Modérateur
QuentinC a écrit :
Par exemple dans Google webmaster tools, on peut choisir si on préfère la version avec ou sans www . S'ils le proposent, c'est bien parce qu'ils savent que souvent, c'est le même site.

Effectivement, comme je l'ai dit, soit on le fait manuellement chez google, bing ou autre, soit on fait un redirect ce qui nous économise la case configuration.

En gros google offre 3 moyens de gérer: Les liens canoniques, le redirect permanent et la configuration dans webmaster tools.
Si on se content du webmaster tools, on a manuellement donné cette information à google. Si on fait un redirect, on a automatiquement donné cette information au web tout entier. Le plus propre me paraît du coup assez évident…