You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

86 lines
1.9 KiB

<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/*
* Creer les rewrite rules
*
* Dans /IMG, on arrive avec (http://naya/IMG/jpg/photo.jpg) :
* %{HTTP_HOST} = 'naya'
* %{SCRIPT_NAME} = '/chemin/http/jusqu/a/spip/spip.php'
* %{REQUEST_URI} = '/IMG/jpg/photo.jpg'
*
*/
// sur le repertoire $dir (sites/truc/local/)
function mutualisation_verifier_htaccess($url, $dir) {
// lire le .htaccess existant
lire_fichier($url . _ACCESS_FILE_NAME, $htaccess);
$source = $htaccess;
// verifier notre bloc init
$bloc = '####
## ce fichier .htaccess est gere par le plugin *mutualisation*
##
## ne le modifiez pas : en cas de besoin editez ce plugin,
## puis effacez ce fichier, il sera recree
##
RewriteEngine On
RewriteBase /
';
if (strpos($htaccess, $bloc) === false) {
$htaccess = $bloc;
}
$host = $_SERVER['HTTP_HOST'];
$racine = dirname($_SERVER['SCRIPT_NAME']); // profondeur_url();
if ($racine == '/' OR $racine == '\\') {
$racine = '';
}
$site = basename(dirname($dir));
$bloc = "
#### 'http://$host$racine/' = 'sites/$site/'
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^" . preg_quote("$host$racine/", ',') . "
RewriteRule .* $racine/$dir\$0 [L]
";
if (strpos($htaccess, $bloc) === false) {
$htaccess .= $bloc;
}
return ($htaccess === $source
or ecrire_fichier($url . _ACCESS_FILE_NAME, $htaccess));
}
/**
* Transformer les liens
* sites/nom_site/(IMG|local).* en (IMG|local).*.
*
* @param string $flux
*/
function mutualisation_traiter_url_img_courtes($flux) {
// IMG
if (!defined('_URL_IMG')) {
define('_URL_IMG', _DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES);
}
// local
if (!defined('_URL_VAR')) {
define('_URL_VAR', _DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES);
}
if (mutualisation_verifier_htaccess(_URL_VAR, _DIR_VAR)
and mutualisation_verifier_htaccess(_URL_IMG, _DIR_IMG)
) {
return str_replace(
array(_DIR_VAR, _DIR_IMG),
array(_URL_VAR, _URL_IMG),
$flux
);
} else {
return $flux;
}
}