Bonjour,
As-tu rediriger toutes les requêtes avec l'index.php du site par hasard?
http://altorouter.com/usage/rewrite-requests.html
Bonjour,
J'ai suivi le tuto sur le router et altorouter.
https://www.youtube.com/watch?v=tbYa0rJQyoM
J'ai fait exactement comme lui en local , et lorsque je lance localhost sur le port demandé cela fonctionne parfaitement. La même chose pour mes routes dans l'index et mes .php avant la racine.
Par contre comment faire passer ça sur son site ?
J'ai le dossier /var/www/monsite. J'ai mis la racine sur public , la page d'accueil marche , le reste pas du tout , il ne reconnait aucun chemin. Et je ne peux pas require Altorouter vu que je suis ROOT et je ne peux me co qu'en root.
Comment faire pour lancer les commandes sur mon serveur ? Comment faire pour installer proprement altorouter , var-dumper , composer ?
Merci d'avance
Bonjour,
As-tu rediriger toutes les requêtes avec l'index.php du site par hasard?
http://altorouter.com/usage/rewrite-requests.html
J'ai edité , oui c'est bien celui de Grafikart.
J'ai fait ceci comme commande dans visual studio code :
Cela fonctionne parfaitement avec mon index qui est exactement comme celui du tuto :
Sur mon serveur , via putty , j'ai installé composer . Mais je ne peux pas faire de composer require , parce que je suis en root et que c'est déconseiller par composer.
J'ai aussi mis ce .htaccess à la racine de mon site sur le serveur : /var/www/public (qui est ma racine via le fichier .conf de apache2)
J'y comprend rien , c'est la toute 1er fois que je fais ça , et j'avoue ne pas bien comprendre où ça coince. Pour moi c'est clairement Var-dumper et altrouter qui ne sont pas bien installé sur le serveur.
Si tu n'as pas installé Atorouter ça ne risque pas de fonctionner oui.
Après, si tu as charger le dossier "vendor" avec le reste ça devrait fonctionner, à moins que le fichier .htaccess ne soit pas pris en compte?
Dans ton fichier .htaccess rajoute cette ligne en première position: "Options +FollowSymLinks" (sans les guillemets) pour voir.
J'arrive pas via Composer require :
J'ai regardé la doc , je vois pas comment faire autrement (j'ai qu'une connexion root et je ne peux pas avoir autre chose)
Oui j'ai chargé le vendor etc.. J'ai ajouté cette ligne dans le .htaccess , aucun résultat.
Pourquoi en local 'composer require' fonctionne , mais sur le serveur il me bloque ? Je comprend pas ce que je fais de mal. J'en ai parlé a mon formateur. Il me dit qu'il est impossible de charger un .php qui n'est pas dans la racine... Mais même quand je mets tous dans public , ça ne fonctionne pas ( en faisant les changement dans l'index.php) . C'est clairement altrouter qui merde.
Ah et au cas où , ma page HOME fonctionne. C'est les autres page qui me 404.
Pour le htaccess pas pris en compte , je peux changer ça où ? Vous avez pas un tuto d'un mec qui installe de A à Z un truc en ligne avec composer ? Comment ils font les gens quand ils rentrent en production ?
La home qui fonctionne et pas les autres pages c'est typique d'un Altorouter qui ne marche pas, ou un htaccess non pris en compte.
Pour composer, à partir du moment où tu charges tout ton site il n'y a pas de souci. Ensuite ça pourra être pour les mmises à jourde packages que ça pourra être utile avec un composer update mais c'est aute chose.
Pour les fichiers PHP qui ne sont pas à la racine ça en change rien, et c'est même fait exprès.
De fait, le seul fichier qui sera "chargé" par le navigateur sera index.php, qui lui se chargera d'aller chercher les fichiers qui ne sont pas accessibles à partir du navigateur, il n'y a pas de problème là dedans.
C'est quoi ton hébergeur?
Crée-toi un nouveau .htaccess avec ça dedans:
Dis-moi ce que ça donne.
Normalement dès que tu vas ton site, ça te rebalancera sur Google. Si ça ne marche pas c'est que le fichier .htaccess n'est pas pris en compte.
.htaccess n'est donc pas pris en compte. Ca ne me fait rien de spécial. Je change ça où ?
EDIT : Je viens d'activer le htaccess via :
AllowOverride all , dans le conf qui concerne /var/www/ , ça me renvoie bien sur google.
Je réessaye alto
Autrement aucune idée de mon hebergeur , c'est une formation greta. Et c'est leurs serveurs.
C'est ce que j'allais te dire si ça ne fonctionnait pas, fallait voir l'activation ou non dans le fichier de conf, tu m'as devancé. :)
Ben du coup ça devrait fonctionner pour Altorouter maintenant.
Et mets bien les fichiers PHP dans un autre dossier que "public", comme tu avais fait avant quoi.
J'ai modifié le apache2.conf de /etc/apache2 , j'ai changer ceci :
Quand j'ai changé ça et mis ton contenu dans le htaccess , la redirection vers google était bien effectué. Cependant quand je colle , l'autre htaccess j'ai une erreur
Et je comprend pas ceci :
<FilesMatch "^.ht">
Require all denied
</FilesMatch>
J'ai bien l'impression qu'il me bloque les .ht , pourquoi la redirection vers google était fonctionnel ?
Mon apache2.conf entier si ça peut t'aider (MERCI énormément pour l'aide ! )
S'il t'as bien redirigé vers Google c'est que les .htaccess sont bien pris en compte, sinon ça n'aurait rien donné.
Il s'agit bien juste de ce qui se trouve sur cette page pour Apache dans le .htaccess?
Tu peux aussi mettre ces 3 lignes dans ton fichier de conf ça marche aussi, le .htaccess étant là pour le faire si on n'a pas accès au fichier "global"
J'ai viré le htaccess et mis ça dans le conf alors. Oui c'est bien ça
mon conf :
J'ai cette erreur maintenant :
Il faut le mettre dans le <Directory /var/www/public/>, et l'adresse où tu vas doit pointer dans ce dossier directement, pas dans "www".
Par exemple pour le site web de la boite où je bosse, le domaine https://www.blababla.com pointe dans "/var/monsite/www/public", où j'ai mon fichier index.php.
YES !! ENFIN !
Donc , pour ceux qui tombent sur ce topic.
J'ai mis :
Dans /etc/apache2/apache2.conf , j'ai eu une erreur comme avant. Et je n'arrivais plus à redémarrer apache2. J'ai donc fait un :
Et j'ai vu que cette le mod Rewrite n'était pas activé ! Donc dans votre fichier conf , la ligne " RewriteEngine on " , pose soucis. Pour activer le mod , il suffit juste de faire ces lignes :
-sudo a2enmod rewrite
Et ajouter ceci à la fin de votre apache2.conf :
Ensuite on redémarre le serveur ,
Et ça devrait marcher ! C'est le cas pour moi ! Merci à toi , tu m'as bien aidé !
A voir le "sujet résolu", c'est donc maintenant OK?