Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] objet jUrl - erreur 404

Posted by debokass on 04/01/2014 12:34

Bonjour,

J'ai fait une "copie" d'un site en prod en local pour y effectuer quelques modifications. L'accueil s'affiche correctement.

Mon souci est avec les urls. A chaque fois que je clique sur une url j'aboutis sur une erreur 404 de la sorte:

Not Found

The requested URL /mycroisiere/promotions was not found on this server.
  • Dans mon template j'ai par exemple l'url suivante:
<li><a href="{jurl 'croisiere~default:discounts'}">Promotions</a></li>
  • et si je tape dans la barre d'url par exemple une url simple de la sorte:
http://localhost/mycroisiere/index.php?module=croisiere&action=default:discounts

alors là le corps de ma page s'affiche (zones communes à toutes les pages) mais dans le {$MAIN} ou doit s'afficher les promotions, j'ai: "0 croisieres en promo trouvées" alors que lorsque j'execute la requete dans phpMyAdmin, j'ai des résultats.

J'ai comme l'impression qu'il s'agit d'un problème de basepath ou configuration du serveur pourtant j'ai tout suivi à la lettre.

  • Dans httpd.conf j'ai:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>


Alias /mycroisiere/ "c:/wamp/www/mycroisiere/croisiere/www/"

Alias /mycroisiere/jelix/ "c:/wamp/www/mycroisiere/lib/jelix/"

<Directory "c:/wamp/www/mycroisiere/croisiere/www/">
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>
  • et dans defaultconfig j'ai:
[urlengine]

engine=significant

enableParser=on

multiview=on

basePath= 

defaultEntrypoint=index

entrypointExtension=.php

pathInfoInQueryParameter=jpathinfo

simple_urlengine_https=

index="@classic"

Avez-vous une idée à quoi pourrait être du mon problème? Je précise qu'en prod tout fonctionne correctement. Ca fait des heures que je me casse la tête à trouver la coquille...

Par ailleurs comment marche le deboggage? si je veux vérifier s'il rentre dans ma fonction discounts() et y afficher le resultat de ma requête etc... comment puis-je procéder?

Merci d'avance de votre aide

Debokass

  [Opened] objet jUrl - erreur 404

Reply #1 Posted by laurentj on 04/01/2014 12:58

Bonjour,

Je pense que ta conf apache est mauvaise. Avec tes paramètres, je n'arrive même pas à démarrer apache, il y a des erreurs, ou encore je n'arrive pas à afficher le index.php.

Dans un premier temps, supprime les alias, copie jelix-www dans www/jelix/, et enlève les règles de rewrite (qui sont faites pour un virualhost dans l'exemple donné).

Rajoute dans Options et AcceptPathInfo


<Directory "c:/wamp/www/mycroisiere/croisiere/www/">
     Options +Multiviews
     AcceptPathInfo on
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>


N'oublie pas de supprimer le temp/mycroisiere à chaque fois que tu fais des modifs dans apache.

  [Opened] objet jUrl - erreur 404

Reply #2 Posted by debokass on 04/02/2014 11:23

Bonjour,

  • J'ai modifié ma configuration d'apache qui est maintenant de la sorte:
<Directory "c:/wamp/www/mycroisiere/">

     Options +Multiviews

     AcceptPathInfo on

     AllowOverride None

     Order allow,deny

     Allow from all

</Directory>
  • Et mon fichier defaultconfig.ini.php:
[urlengine]

engine=significant

jelixWWWPath="/mycroisiere/croisiere/jelix/"

enableParser=on

multiview=on

basePath= "/mycroisiere/croisiere/www/"

defaultEntrypoint=index

entrypointExtension=.php

pathInfoInQueryParameter=jpathinfo
  • Maintenant, du fait que j'ai retiré les alias, pour accéder à l'accueil de mon site via mon navigateur je fais:
http://localhost/mycroisiere/croisiere/www/

Le problème persiste. Les liens ne fonctionnent pas.

J'ai l'impression que le problème est du à l'utilisation de jurl car j'ai un par exemple un lien "Accueil" sur ma page qui n'utilise pas jurl et qui ne me renvoit pas à une erreur 404 mais bien à l'accueil.

  • Dans mon template l'url est de la sorte:
<li><a href="{$j_basepath}">Accueil</a></li>
  • Toutes les autres urls sont de la sorte:
<li><a href="{jurl 'tags~default:results',array('tagid'=>1,'tagname'=>'Croisiere Méditérranée')}">Croisieres Méditérranée</a></li>

Je ne sais pas du tout à quoi cela peut-il être du. J'ai retourné les fichiers et docs dans tous les sens :-S

(comment puis-je faire un déboggage? si je veux voir si on rentre bien dans une fonction de mon default.classic.php et faire des affiches à l'écran commant faire?)

Merci beaucoup de votre aide et j'éspère résoudre ce problème au plus vite!!!

  [Opened] objet jUrl - erreur 404

Reply #3 Posted by laurentj on 04/03/2014 10:28

Quelle tête a la deuxième URL ?

  [Opened] Re: objet jUrl - erreur 404

Reply #4 Posted by debokass on 04/03/2014 10:34

Quelle deuxieme url?

  [Opened] objet jUrl - erreur 404

Reply #5 Posted by debokass on 04/03/2014 10:54

J'ai tout recommencé depuis le début. J'ai copié mon site sous c://wamp/www/croisi.

Dedans j'ai l'arborescence suivante:

croisi/

croisiere

lib

temp

Je vous remets mes fichiers de config:

httpd.conf:

<Directory "c:/wamp/www/">

Options +Multiviews

AcceptPathInfo on

Options Indexes FollowSymLinks

AllowOverride all

Order Deny,Allow

Deny from all

Allow from 127.0.0.1

</Directory>
#Alias /croisi/jelix/ "c:/wamp/www/croisi/lib/jelix/" (je sais pas si je dois le mettre ou pas)
<Directory "c:/wamp/www/croisi/">

     Options +Multiviews

     AcceptPathInfo on

     AllowOverride None

     Order allow,deny

     Allow from all

</Directory>

defaultconfig.ini.php

[urlengine]

engine=significant

jelixWWWPath="jelix/"

enableParser=on

multiview=on

basePath=  "/croisi/croisiere/www/"

defaultEntrypoint=index

entrypointExtension=.php

pathInfoInQueryParameter=jpathinfo

notfoundAct=

simple_urlengine_https=
  • en prod lorsque je clique sur le lien croisieres mediteranees ca fonctionne:
http://www.mycroisiere.com/t/croisiere-mediterranee-1
  • en local
http://localhost/croisi/croisiere/www/t/croisiere-mediterranee-1
erreur 404

The requested URL /croisi/croisiere/www/t/croisiere-mediterranee-1 was not found on this server.

et cela est valable pour tous les liens

D'autre part:

1) j'ai bien le dossier jelix-www sous wamp/www/croisi/croisiere/www qui a été renommé en jelix.

2) Peut être est-ce un problème de permissions. Dans la section "configuratio du serveur" il est écrit: Vous devez donner le droit en écriture à l'utilisateur exécutant votre serveur web (apache ou autre) au moins sur le répertoire myapp/var/log/, ainsi que tous les répertoires dans le répertoire temp/. comment vérifier si c'est le cas sous windows 7?

  [Opened] objet jUrl - erreur 404

Reply #6 Posted by laurentj on 04/03/2014 15:07

Je pense avoir trouvé, ça me revient. Dans le fichier var/config/urls.xml, il doit y avoir un attribut noentrypoint="true" sur la/les balises <entrypoint>. Enlève le (sans oublier de le remettre pour la prod). Ou alors il te faut configurer un virtualhost dans apache, avec les règles de réécriture rewrite etc..

  [Opened] objet jUrl - erreur 404

Reply #7 Posted by laurentj on 04/03/2014 15:11

pour vérifier que tout les droits et autres extensions php sont là, tu dois avoir un fichier lib/jelix_check_server.php. copie le dans le www/ et appel le depuis ton navigateur. Il te montre si tout est ok.

  [Opened] objet jUrl - erreur 404

Reply #8 Posted by debokass on 04/03/2014 19:32

Ah oui j'ai vu ce noentrypoint=true sur la balise entrypoint au debut du fichier! Je vais essayer demain et je vais voir si ça fonctionne! À quoi sert ce noentrypoint? Et pourquoi une différence avec la prod? Merci beaucoup de votre aide :))

  [Opened] objet jUrl - erreur 404

Reply #9 Posted by debokass on 04/06/2014 11:11

Bonjour,

Alors j'ai enlevé le noentrypoint=true et maintenant à chaque fois que je clique sur un lien, dans l'url j'obtiens par exemple:

http://localhost/croisi/croisiere/www/index/t/fluvial-29

dans url.xml j'ai:

<urls xmlns="http://jelix.org/ns/urls/1.0">

  <classicentrypoint name="index" default="true">

  [...]

  <url pathinfo="/t/:tagname-:tagid" module="tags" action="default:results">

Mais le contenu ne s'affichie pas, j'ai le contenu de index.php

J'ai limpression que c'est un problème avec ma base de données, pourtant dans mon accueil j'ai bien quelques croisieres affichées (donc bdd qui fonctionne)...

Autre exemple:

si je prends l'ulr suivante du site en prod:

http://www.mycroisiere.com/croisiere/costa/costa-luminosa/bleu-lavande-3827

et qu'en local je mets:

http://localhost/croisi/croisiere/www/croisiere/costa/costa-luminosa/bleu-lavande-3827

Là j'ai une erreur 404 ... not found on this server

et si je mets:

http://localhost/croisi/croisiere/www/__index__/croisiere/costa/costa-luminosa/bleu-lavande-3827

Là c'est l'index qui s'affiche...

je rappelle que mon basepath est le suivant

basePath=  "/croisi/croisiere/www/"

Vers quoi je peux me diriger pour résoudre ce souci?

Merci :-)

 
Page
  1. objet jUrl - erreur 404