Auteur Sujet: comment faire pour mettre sur un serveur http un site développé en local  (Lu 294 fois)

René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
Bonjour
j'ai développé en local (via Mamp) et je souhaite porter ce site chez l'hébergeur
j'ai modifié le config.json -> impec
hélas, je n'arrive pas à retrouver le contenu des pages, il y a juste le nom connu en admin
et sinon error 404
seule la page d'accueil marche ...

un dépannage ?
d'avance merci
René

99ko

  • Administrateur
  • Néophyte
  • *****
  • Messages: 19
    • Voir le profil
Tu as un fichier htacess à la racine ?
Il y a quoi dedans ?

René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
Bonjour
d'abord le site est chez Free, je sais c'est pas super mais c'est gratuit (pour une association ...)
j'ai refait un fichier .htaccess à la racine générale du site car d'abord  j'avais eu comme erreur json_decode fonction inconnue , due à mon avis à version php trop basse chez Free de base

<Files .htaccess>
order allow,deny
deny from all
</Files>
#php5 en actif
<IfDefine Free>
php56 1
</IfDefine>


J'ai un dossier 99ko où il y a le site
j'ai vu qu'il y avait aussi un htaccess
je l'ai modifié car il y avait une ligne
RewriteBase /99ko-v4-v5-master/  il me semble que j'ai transformé en      RewriteBase /99ko/

maintenant j'ai l'erreur :      Erreur 500 - Erreur interne du serveur
visiblement, soit il faudrait relancer "les exécuteurs PHP associés au serveur Apache", soit plutôt il y a des directives qui ne sont pas supportées sur l'architecture des pages perso de Free
( http://les.pages.perso.chez.free.fr/ah-les-erreurs-500-sur-les-sites-web.io )

voilà où j'en suis

ciao
René






René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
çà doit être à propos de la réécriture des "permaliens" je pense car quand j'enlève
le fichier htaccess en le renommant par exemple, j'accède au site, page d'accueil uniquement ...

il y a un problème semblable avec wordpress chez Free
http://michel.leger1.free.fr/index.php/trucs-astuces/wordpress/erreur-500-chez-free

et je ne suis pas sûr qu'en supprimant toutes les pages et en le ré-écrivant çà change quelque chose

à bientôt pour une réponse j'espère
ciao
René


René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
Bon, d'après ce que je vois sur internet,  Free ne permet pas l' "URL Rewriting"

2 solutions :
- changer d'hébergeur
- trouver une astuce pour contourner çà

pour la seconde solution, j'ai vu quelques sites qui proposait de contourner l'ERREUR 404 obtenue en la redirigeant vers un php qui traite çà
ex:
http://lionel.suz.free.fr/index.php?id=about&sub=blog&entry=1076844339 
https://blog.lecacheur.com/2005/10/25/url-rewriting-avec-un-site-chez-free/. (solution pour Dotclear)
https://openclassrooms.com/forum/sujet/url-rewriting-chez-free-15513

ou utiliser le multiview dans htaccess (exemple ziteplus)
Options +multiviews

la première méthode n'ayant pas marché, je vais chercher du côté multivews ..
ciao
René


99ko

  • Administrateur
  • Néophyte
  • *****
  • Messages: 19
    • Voir le profil
Free c'est toujours les mêmes problèmes depuis des décennies  :(

René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
he oui, c'est frit

quand je regarde https://httpd.apache.org/docs/2.4/fr/content-negotiation.html, et en particulier multiviews :

L'effet de MultiViews est le suivant : si le serveur reçoit une requête pour /tel/répertoire/foo, si MultiViews est activée pour /tel/répertoire, et si /tel/répertoire/foo n'existe pas, le serveur parcourt le répertoire à la recherche de fichiers nommés foo.*, et simule littéralement une correspondance de types (type map) qui liste tous ces fichiers, en leur associant les mêmes types de média et encodages de contenu qu'ils auraient eu si le client avait demandé l'accès à l'un d'entre eux par son nom. Il choisit ensuite ce qui correspond le mieux aux besoins du client.

c'est pas comme çà qu'à été pensé 99ko
-> je me dis donc que c'est mort de mettre 99ko chez free ;-((

je vais me résoudre à changer d'hébergeur
qui au fait
OVH ? Ionos 1&1?   ou un autre gratuit que free ?
des avis ?

belle journée à vous
René



99ko

  • Administrateur
  • Néophyte
  • *****
  • Messages: 19
    • Voir le profil
Ovh propose un hébergement gratuit avec chaque nom de domaine,  mais un espace de 10mo seulement ce qui suffit toutefois pour 99ko si on ne stocke pas 50 images...

En gratuit le seul correct que j'avais trouvé c'était pingfile mais je crois que le site est down...

René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
Ovh gratuit à 10 Mo trop petit ....

Je me dis que si on peut "simuler un rewriting" pour dotclear ou wordpress chez Free, alors çà doit être aussi possible pour 99ko ;-))
comme je suis un peu têtu, j'ai repris cette solution

çà commence à donner des débuts de résultats
il faut :
1°) mettre un .htaccess adapté au lieu de celui avec les RewriteRule
# solution  pour erreur 404 free, simuler rewriting par une fonction php
ErrorDocument 404 /99ko/rewrite.php


2°)
réécrire  dans rewrite.php   au lieu de
/99ko/page/titrepage-10.html    99ko/index.php?p=page&id=10
(à adapter bien sûr pour blog, contact, galerie)

et ceci dans un test
if ( test) {
   header("HTTP/1.0 200 OK");
   header('Location: /99ko/index.php?p=page&id=10'); voire adresse plus complète ???
} else {
   header("HTTP/1.0 404 OK");
}


où j'en suis

$url=$_SERVER['REQUEST_URI']     ->      /99ko/page/titrepage-10.html
$decoupe = explode("/", $url)
$decoupe[1]   ->  99ko
$decoupe[2]   ->  page
$decoupe[3]   ->  titrepage-10.html

si $decoupe[3] ->   $VariableId = substr($decoupe[3], -7, 2);      -7,1) pour les valeurs < à 10
alors "http://".$_SERVER['HTTP_HOST']."/" . $decoupe[1] . "/index.php?p=" . $decoupe[2] . "&id=" . $VariableId
sinon "http://".$_SERVER['HTTP_HOST']."/" . $decoupe[1] . "/index.php?p=" . $decoupe[2]


il y a encore beaucoup de "principes de codage" mais çà avance doucement

à+
René




René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
99ko marche  chez free :)
mais avec ce système les adresses sont bien moins cool  :(
René

le code est le suivant pour rewrite.php

<?php
// René P Juin 2020

// pas utile
//$url_total = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

// exemple de retour pour $url   /99ko/page/titrepage-10.html
$url=$_SERVER['REQUEST_URI'];

// on découpe $url en 2 ou 3 morceaux
$decoupe = explode("/", $url);

// pour savoir, quand on est dans page, blog si le numéro de l'identifiant
// est < à 10 ou non
$VariableTest = substr($url, -7, 1);

if ($decoupe[3]!="") {
   if ($VariableTest == "-") {
     $VariableId = substr($url, -6, 1);  // nombre <10
     } else {
     $VariableId = substr($url, -7, 2);   // nombre entre 10 et 99
    }   
}

if ($decoupe[3]!="") {
    $loc = "/" . $decoupe[1] . "/index.php?p=" . $decoupe[2] . "&id=" . $VariableId;
    } else {
    $loc = "/" . $decoupe[1] . "/index.php?p=" . $decoupe[2];
}


// à la dotclear
// if (test) {
   header("HTTP/1.0 200 OK");
   header('Location: '.$loc);
//} else {
//   header("HTTP/1.0 404 OK");
//}


?>





René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
çà doit pas changer beaucoup mais on peut rajouter le titre de la page
pour obtenir quelquechose comme   99ko/index.php?p=page&name=titre­page&id=2

il faudrait changer un peu le code de rewrite.php donné précédemment

if ($decoupe[3]!="") {
   if ($VariableTest == "-") {
     $VariableId = substr($url, -6, 1);  // nombre <10
     $name = substr($url, 0, -6);
     } else {
     $VariableId = substr($url, -7, 2);   // nombre entre 10 et 99
     $name = substr($url, 0, -7);
    }   
}

if ($decoupe[3]!="") {
    // on remplace par la ligne dessous  $loc = "/" . $decoupe[1] . "/index.php?p=" . $decoupe[2] . "&id=" . $VariableId;
    $loc = "/" . $decoupe[1] . "/index.php?p=" . $decoupe[2] . "&name=" . $name . "&id=" . $VariableId;


René


René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
Restait un pb : l'envoi de mail chez Free .....
je regarde çà avec le plugin de 99ko contact dès que je peux ...

pour le moment, à l'arrache dans une page Contactez-nous!, j'ai un vieux truc avec un script perl de chez Free
<form method="post" name="formulaire" action="http://perso0.free.fr/cgi-bin/form2mail.pl">

un "espoir" là peut-être   "L'art et la manière d'envoyer des mails depuis les pages perso de Free…"
http://les.pages.perso.chez.free.fr/l-art-d-envoyer-des-mails-depuis-les-pp-de-free.io

la vie pourrait être plus simple des fois  :)
René


René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
Bonjour
dans mon avant dernier envoi, il y avait 2 erreurs dans le bout de code php envoyé ...
il fallait écrire 
$name = substr($decoupe[3], 0, -7);    au lieu de $name = substr($url, 0, -6);
$name = substr($decoupe[3], 0, -8);
   au lieu de $name = substr($url, 0, -7);

 
voilà le code de rewrite.php qui marche pour free.
<?php
// René P 11 Juin 2020

// exemple de retour pour $url   /99ko/page/titrepage-10.html
$url=$_SERVER['REQUEST_URI'];

// on découpe en 2 ou 3 morceaux $url
$decoupe = explode("/", $url);

// pour savoir, quand on est dans page ou  blog si le numéro de l'identifiant
// est < à 10 ou non, on teste la position de -
$VariableTest = substr($url, -7, 1);

if ($decoupe[3]!="") {
   if ($VariableTest == "-") {
     $VariableId = substr($url, -6, 1);// nombre <10
     $name = substr($decoupe[3], 0, -7);
     } else {
     $VariableId = substr($url, -7, 2);// nombre entre 10 et 99
     $name = substr($decoupe[3], 0, -8);
    }   
}

if ($decoupe[3]!="") {
     $loc = "/" . $decoupe[1] . "/index.php?p=" . $decoupe[2] . "&name=" . $name . "&id=" . $VariableId;
    } else {
    $loc = "/" . $decoupe[1] . "/index.php?p=" . $decoupe[2];
}

header("HTTP/1.0 200 OK");
header('Location: '.$loc);
?>


Bonne journée
René

bazooka07

  • Néophyte
  • *
  • Messages: 1
    • Voir le profil
Bonjour,

Pour analyser une URL, il y a la fonction parse_url();

$parts = parse_url(ø_SERVER['REQUEST_URI']);
https://www.php.net/manual/fr/function.parse-url.php

René P.

  • Néophyte
  • *
  • Messages: 20
    • Voir le profil
cool  ;D
René