Skip to content
Extraits de code Groupes Projets
Valider ff9dc9b0 rédigé par Fil's avatar Fil
Parcourir les fichiers

gérer les adresses en fonction du HTTP_HOST et pas de meta['adresse_site']

parent 1efdbab9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -101,11 +101,11 @@ function auth_dist() { ...@@ -101,11 +101,11 @@ function auth_dist() {
if ($_GET['bonjour'] == 'oui') $clean_link->delVar('bonjour'); if ($_GET['bonjour'] == 'oui') $clean_link->delVar('bonjour');
$url = str_replace('/./', '/', _DIR_LOGGED_IN. $clean_link->getUrl()); $url = str_replace('/./', '/', _DIR_LOGGED_IN. $clean_link->getUrl());
redirige_par_entete(generer_url_public('spip_login'),"?url=".urlencode($url)); redirige_par_entete(generer_url_public('spip_login'),
exit; "?url=".urlencode($url));
exit; # pour etre vraiment surs :)
} }
// //
// Chercher le login dans la table auteurs // Chercher le login dans la table auteurs
// //
......
...@@ -545,6 +545,18 @@ function redirige_par_entete($url, $fin="") { ...@@ -545,6 +545,18 @@ function redirige_par_entete($url, $fin="") {
# spip_log("redirige $url$fin"); # spip_log("redirige $url$fin");
include_ecrire('inc_headers'); include_ecrire('inc_headers');
spip_header("Location: $url$fin"); spip_header("Location: $url$fin");
echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head>
<body>
<h1>302 Found</h1>
<a href="'
.quote_amp("$url$fin")
.'">Click here</a>.<p>
</body></html>';
exit; exit;
} }
...@@ -640,7 +652,32 @@ function charger_generer_url() { ...@@ -640,7 +652,32 @@ function charger_generer_url() {
include_local("inc-urls-".$GLOBALS['type_urls']); include_local("inc-urls-".$GLOBALS['type_urls']);
} }
// Fonctions de fabriction des URL des scripts de Spip
//
// Fonctions de fabrication des URL des scripts de Spip
//
// l'URL de base du site, sans se fier a meta(adresse_site) qui peut etre fausse
// (sites a plusieurs noms d'hotes, deplacements, erreurs)
function url_de_base() {
global $_SERVER;
global $REQUEST_URI;
static $url;
if ($url)
return $url;
$http = (substr($_SERVER["SCRIPT_URI"],0,5) == 'https') ? 'https' : 'http';
# note : HTTP_HOST contient le :port si necessaire
$myself = $http.'://' .$_SERVER['HTTP_HOST'].$REQUEST_URI;
# supprimer (ecrire/)?xxxxx
$url = preg_replace(',/('._DIR_RESTREINT_ABS.')?[^/]*$,', '/', $myself);
return $url;
}
// Pour une redirection, la liste des arguments doit etre separee par "&" // Pour une redirection, la liste des arguments doit etre separee par "&"
// Pour du code XHTML, ca doit etre &amp; // Pour du code XHTML, ca doit etre &amp;
// Bravo au W3C qui n'a pas ete capable de nous eviter ca // Bravo au W3C qui n'a pas ete capable de nous eviter ca
...@@ -650,30 +687,23 @@ function charger_generer_url() { ...@@ -650,30 +687,23 @@ function charger_generer_url() {
// http://httpd.apache.org/docs/2.0/mod/mod_dir.html // http://httpd.apache.org/docs/2.0/mod/mod_dir.html
function generer_url_ecrire($script, $args="", $no_entities=false, $rel=false) { function generer_url_ecrire($script, $args="", $no_entities=false, $rel=false) {
$site = $rel ? "" : $GLOBALS['meta']["adresse_site"];
if ($site) if (!$rel)
$site .= ((substr($site,-1) <> '/') ? '/' : '') . _DIR_RESTREINT_ABS; $ecrire = url_de_base() . _DIR_RESTREINT_ABS;
else $site = _DIR_RESTREINT; else
$ecrire = _DIR_RESTREINT ? _DIR_RESTREINT : './';
if (!$site)
$site = './';
elseif (substr($site,-1) != '/') {
$site .= '/';
}
$ext=(ereg('.php[3]?$', $script) ? '' :_EXTENSION_PHP).($args ? "?" : ""); $ext=(ereg('.php[3]?$', $script) ? '' :_EXTENSION_PHP).($args ? "?" : "");
if (!$no_entities) $args = str_replace('&', '&amp;', $args); if (!$no_entities) $args = str_replace('&', '&amp;', $args);
return "$site$script$ext$args"; return "$ecrire$script$ext$args";
} }
// scripts publics appeles a partir de l'espace prive ou de l'exterieur (mail) // scripts publics appeles a partir de l'espace prive ou de l'exterieur (mail)
function generer_url_public($script, $args="", $no_entities=false) { function generer_url_public($script, $args="", $no_entities=false) {
$site = $GLOBALS['meta']["adresse_site"];
if ($site) $site = url_de_base();
$site .= ((substr($site,-1) <> '/') ? '/' : '');
else $site = _DIR_RACINE;
if (!$no_entities) $args = str_replace('&', '&amp;', $args); if (!$no_entities) $args = str_replace('&', '&amp;', $args);
$ext = (ereg('.php[3]?$', $script) ? '' :_EXTENSION_PHP).($args ? '?' : ""); $ext = (ereg('.php[3]?$', $script) ? '' :_EXTENSION_PHP).($args ? '?' : "");
return $site . $script . $ext . $args; return $site . $script . $ext . $args;
......
...@@ -18,6 +18,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; ...@@ -18,6 +18,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
// la fonction retire_cache() // la fonction retire_cache()
// //
function generer_nom_fichier_cache($contexte='', $fond='') { function generer_nom_fichier_cache($contexte='', $fond='') {
global $_SERVER;
global $flag_gz; global $flag_gz;
if (!$contexte) { if (!$contexte) {
...@@ -41,7 +42,7 @@ function generer_nom_fichier_cache($contexte='', $fond='') { ...@@ -41,7 +42,7 @@ function generer_nom_fichier_cache($contexte='', $fond='') {
$fichier_cache = 'INDEX-'; $fichier_cache = 'INDEX-';
// morceau de md5 selon HOST et $fond // morceau de md5 selon HOST et $fond
$md_cache = md5($fichier_requete . $GLOBALS['HTTP_HOST'] . $fond); $md_cache = md5($fichier_requete . $_SERVER['HTTP_HOST'] . $fond);
$fichier_cache .= '.'.substr($md_cache, 1, 8); $fichier_cache .= '.'.substr($md_cache, 1, 8);
// Sous-repertoires 0...9a..f/ // Sous-repertoires 0...9a..f/
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter