christian lefebvre a écrit :
On Fri, 2007-05-25 at 16:17 +0200, christian lefebvre wrote:
pour l'instant, j'en suis à ça :
J'ai oublié un morceau : les rewrite rules
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond /usr/local/spip/%{REQUEST_FILENAME} -f
RewriteRule ^(.+) /usr/local/spip/$1 [L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteCond /usr/local/spip/%{REQUEST_FILENAME} -d
RewriteRule ^(.+) /usr/local/spip/$1/index.php [L]
là aussi, c'est à revoir car c'est un peu violent.
Bonsoir,
Je viens de tester ta proposition, mais je n'arrive pas à me passer de certains problèmes 
Voici ce que j'ai du faire pour activer les url propres... Les rewritesrules ici ne suffisaient pas. Je n'ai pas testé en alias (ça me parait encore plus dur !). J'ai ajouté que si on ne demande ni un fichier ni un dossier du site mutualisé, alors on va sur le noyau, sinon les url modifiées restaient sur place avec un 404 :
C'est fait rapido, hein 
<VirtualHost *>
ServerName essai.org
DocumentRoot "/home/marcimat/public_html/essai.org/"
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond /home/marcimat/public_html/spip/%{REQUEST_FILENAME} -f
RewriteRule ^(.+) /home/marcimat/public_html/spip/$1 [L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteCond /home/marcimat/public_html/spip/%{REQUEST_FILENAME} -d
RewriteRule ^(.+) /home/marcimat/public_html/spip/$1/index.php [L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} -f
RewriteRule ^(.+) - [L]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [L]
RewriteRule ^(.+) /home/marcimat/public_html/spip/$1 [L]
</VirtualHost>
Ca a réglé un problème...
Mais j'en ai trouvé un autre...
Alors que les css et js trouvées par la balise #CHEMIN (modifiée) passent sans incident, les images inclues dans les articles, elles ne traversent pas #CHEMIN et du coup, il cherche ces images dans http://essai.org/home/~marcimat/public_html/essai.org//IMG/… ou local parfois... Bref, pas jojo !
J'ai tenté de supprimer directement $_SERVER['DOCUMENT_ROOT'] du résultat de la fonction find_in_path, mais là non plus ça ne va pas !
Autre idée venue ensuite : corriger les chemins après le calcul du rendu par spip, en utilisant un pipeline qui va bien... je n'ai trouvé que affichage_final. J'ai utilisé comme suit (dans mes_options, avec la balise chemin)(un rien brute aussi !) :
$spip_pipeline['affichage_final'] .= '|chemin_correct';
function chemin_correct($texte){
return str_replace($_SERVER['DOCUMENT_ROOT'], '', $texte);
}
(penser à supprimer tmp/charger_pipelines.php pour qu'il se régénère... j'ai galéré à cause de ça !)
Je n'ai maintenant plus de problème d'affichage des images dans la partie publique, mais aucune ne s'affiche dans la partie privée ! Car les adresses sont encore /home/marcimat/patati/patata.......
[->mode abandon]
Qui parlait de séparer l'adresse des path de celle des url ?
Je ne sais vraiment pas s'il y a d'autre solution si on veux avoir les sites en dehors du répertoire spip...
Par ailleurs, il reste un autre problème insoluble aussi, celui des url qui ne passent ni par query string (?) ni par spip.php, comme propres...
Elles nécessitent de renseigner le rewritebase du .htaccess du /spip/ dans mon cas. Si je mets rewritebase /, ça fonctionne pour tous les domaines et sous domaines... mais plus pour un spip dans un répertoire. C'est galère pour la mutualisation du coup si on ne veux pas tous les sites pareils.
J'ai bien tenté de mettre un rewritecond puis un rewritebase, mais apache ne garde que le dernier rewritebase quelque soit le rewritecond qui le précède... Ca aurait pu être sympa pourtant !
C'est vraiment tordu l'informatique parfois !
Bon... dodo !
MM.