8721 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Bon en fait ça revient pas mal au même... dans les 2 cas ça m'amène à un 404, à partir de là je bloc...
Je t'ai donné la solution complète dans mon dernier post. Qu'est ce que tu as mis en place depuis et qu'est ce que tu as comme erreur ?
Comme dit plus haut...

Je n'ais aucun message d'erreur. Ça m'amène toujours à un 404.

Dans ma page qui mène au catégorie j'ai fais comme ça:
$search = array(' ', '/','É','é');
$replace = array('-', '-','e','e');
$link = strtolower($info['fr']);
$lien = str_replace($search, $replace, $link);
<a href="chasse/<?php echo $lien;?>.html"><?php echo $info['fr'];?></a>
J'ai aussi tenté en ajoutant une colonne contentant le "nom" du lien, mais ça revient au même.

Dans ma page categorie qui m'amène aus produits j'ai changé mon lien pour ça:
<a href="<?php echo $produits; ?>.html"></a>


Dans mon .htaccess j'ai :
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^FR\/cameras\/chasse\/(.*)\.html$  http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=$1  [QSA]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^FR\/cameras\/chasse\/(.*)\.html$  http://www.spypoint.com/FR/cameras/chasse/camera.php?produits=$1  [QSA]

Modifié par juliesunset (12 Apr 2013 - 20:50)
Je reviens avec le problème car il y a une petite évolution... même si je n'arrive pas à faire le rewriting correctement.

donc voilà, j'ai changé "RewriteRule" par "RedirectMatch permanent" et retiré les "RewriteCond %{HTTP_HOST} ^.*$" et "[QSA]" à chaque règle.

Bref ici il s'agit d'une redirection "à la volé" ce qui n'est pas plus mal... mais j'aimerais vraiment réussir à faire le rewriting...

RedirectMatch permanent ^/FR/cameras/chasse/([a-zA-Z-]+)\.html$ "http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=$1"

RedirectMatch permanent ^/FR/cameras/chasse/(.*)\.html$ "http://www.spypoint.com/FR/cameras/chasse/camera.php?produits=$1"


dans ma page, mes liens sont maintenant :
<a href="/FR/cameras/chasse/<?php echo $lien;?>.html">
et
<a href="/FR/cameras/<?php echo $produits; ?>.html">


mais le premier lien m’emmène sur
-http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=del-noires-
Le problème ici, c'est qu'il faudrait changé "del-noires" pour "DEL noires"

et le 2e lien.
-http://www.spypoint.com/FR/cameras/chasse/camera.php?produits=D6-
Modifié par juliesunset (17 Apr 2013 - 18:36)
Salut

Je vois que tu souffres encore Smiley lol

D'ailleurs j'ai oublié de te mentionner une autre remarque dans notre précédente discussion, c'est que tu dois faire recours aux chemins absolus sur tout quand nous avons la possibilité de passer en URLRewriting ou pour personnaliser la 404.

Pour ton problème je n'ai pas eu le temps de lire toutes les interventions, mais là j'ai une liste des choses que tu dois faire pour mettre en place l'URLRewriting:

1-Vérifier que l'hébergeur accepte la prise en charge de l'htaccess et qu'il a activé le module de l'URLRewriting.

2-Concevoir son fichier selon le besoin, et ici je remarque que tu as deux liens un pour camera.php et un deuxième pour index.php, la remarque que j'ai fait dans ce que tu as fait c'est que entre index.php et camera.php tu n'as fait aucune distinction à part le fait de saisir un caractère différent de [a-zA-Z-] pour pouvoir passer à camera; la 2 ème remarque est que comme je t'ai déjà dit dans l'autre sujet, tu dois faire recours à des clé pour identifier tes articles, c'est la façon la plus sûre, au lieu de se baser sur des attribut qui servent à contenir des informations publiques exmp: "DEL noires", et déjà tu as commencé à rencontrer des problèmes avec comme tu as trouvé du mal à remettre "del-noires-" en "DEL noires", alors la conception que je te propose pour tes liens est ainsi:

//Pour index
 http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=val
 
//doit être présenté comme suit en exemple
 http://www.spypoint.com/FR/cameras/chasse/ton-titre-prive-des-caracteres-speciaux-cs-id_de_la_sous_categorie
 
//Et pour caméra
 http://www.spypoint.com/FR/cameras/chasse/ton-titre-prive-des-caracteres-speciaux-camera-id_de_ton_produit
 

ici nous avons deux choses auxquelles nous avions accordé l'attention, la présence du titre de ton produit ou catégorie pour le référencement, le "cs" est pour distinguer les sous catégories, et "camera" est pour distinguer les caméras, et l'id de l'article ce qui va nous débarrasser de tes contraintes ("DEL noires" Smiley biggol ).

Et la une question, pour quoi "cs" au lieu de souscategorie pour sous catégorie, et camera pour caméra, tout simplement parce que sous catégorie n'est pas une information intéressante pour les moteurs de recherche relativement aux mots clés sur lesquels tu travailles, et aussi pour l'user qui pourra savoir qu'il s'agit d'une sous catégorie au niveau de ta page même si cette information n'est pas aussi importante pour lui car c'est le titre qui l'intéresse pour ceux qui check les barres d'adresses Smiley smile , contrairement à caméra qui est un mots clé qui représente votre activité.

Dans ce cas ton fichier htaccess qui doit se présenter dans la racine doit ressembler à ça:

RewriteEngine on
RewriteRule   ^/FR/cameras/chasse/([a-zA-Z0-9-]+)-cs-([0-9]+)$  /FR/cameras/chasse/index.php?titre=$1&sousCategories=$2  [L]
RewriteRule   ^/FR/cameras/chasse/([a-zA-Z0-9-]+)-camera-([0-9]+)$  /FR/cameras/chasse/camera.php?titre=$1&produit=$2  [L]

En effet tu pourras régler les groupes selon les caractères que tu autoriseras, par exemple tu pourras rajouter "_" ou/et "," ...

Et comme déjà dit dans un autre post tu dois mettre tes liens bien formatés dans tes pages c'est à dire comme ça:
http://www.spypoint.com/FR/cameras/chasse/ton-titre-prive-des-caracteres-speciaux-camera-id_de_ton_produit


Finalement une dernière chose à laquelle nous devons faire attention, c'est que le titre est là pour que l'URL soit expressif pour les moteurs de recherche ainsi pour les clients, et bien sur que nous aurons la clé de l'article bien présente sur notre page de traitement et que nous pourrons user pour récupérer l'information que cherche le client, mais là une question très importante et que dans ce cas il ne faut pas se baser sur la clé toute seule pour laisser passer vers le contenu, mais il faut aussi vérifier que le titre correspond aussi à la définition que tu as déjà prévu et fourni sur tes pages, tout simplement car si on se contente de la clé, nous aurons ça:

 http://www.spypoint.com/FR/cameras/chasse/titre1-camera-id1
 
//Et
 http://www.spypoint.com/FR/cameras/chasse/titre2-camera-id1
 

qui ramène vers la même page et le même contenu, ce qui est traité comme duplication de contenu par les moteurs de recherche, ce qui pourra engendrer une sanction, et par suite, un potentiel de clients est perdu Smiley bawling

Alors voilà c'est tout ce qu j'ai à dire pour le moment espérant que ça marche.
bon courage.
unami a écrit :
Je vois que tu souffres encore Smiley lol
Ouais, faut croire que j'en suis destiné! Smiley biggol

unami a écrit :
1-Vérifier que l'hébergeur accepte la prise en charge de l'htaccess et qu'il a activé le module de l'URLRewriting.
Vérifications fait avant même de commencé les essaie. Tout est beau de ce côté.

unami a écrit :
2-Concevoir son fichier selon le besoin, et ici je remarque que tu as deux liens un pour camera.php et un deuxième pour index.php, la remarque que j'ai fait dans ce que tu as fait c'est que entre index.php et camera.php tu n'as fait aucune distinction à part le fait de saisir un caractère différent de [a-zA-Z-] pour pouvoir passer à camera; la 2 ème remarque est que comme je t'ai déjà dit dans l'autre sujet, tu dois faire recours à des clé pour identifier tes articles, c'est la façon la plus sûre, au lieu de se baser sur des attribut qui servent à contenir des informations publiques exmp: &quot;DEL noires&quot;, et déjà tu as commencé à rencontrer des problèmes avec comme tu as trouvé du mal à remettre &quot;del-noires-&quot; en &quot;DEL noires&quot;, alors la conception que je te propose pour tes liens est ainsi:

//Pour index
 http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=val
 
//doit être présenté comme suit en exemple
 http://www.spypoint.com/FR/cameras/chasse/ton-titre-prive-des-caracteres-speciaux-cs-id_de_la_sous_categorie
 
//Et pour caméra
 http://www.spypoint.com/FR/cameras/chasse/ton-titre-prive-des-caracteres-speciaux-camera-id_de_ton_produit
 

ici nous avons deux choses auxquelles nous avions accordé l'attention, la présence du titre de ton produit ou catégorie pour le référencement, le &quot;cs&quot; est pour distinguer les sous catégories, et &quot;camera&quot; est pour distinguer les caméras, et l'id de l'article ce qui va nous débarrasser de tes contraintes (&quot;DEL noires&quot; Smiley biggol ).
Fait... ça donne ça:
http://www.spypoint.com/FR/cameras/chasse/<?php echo $info['lienFR'];?>.html
ce qui donne par exemple :
http://www.spypoint.com/FR/cameras/chasse/haute-definition.html
Et c'est pas mal ce que je cherche à obtenir...

unami a écrit :
Et la une question, pour quoi &quot;cs&quot; au lieu de souscategorie pour sous catégorie, et camera pour caméra, tout simplement parce que sous catégorie n'est pas une information intéressante pour les moteurs de recherche relativement aux mots clés sur lesquels tu travailles, et aussi pour l'user qui pourra savoir qu'il s'agit d'une sous catégorie au niveau de ta page même si cette information n'est pas aussi importante pour lui car c'est le titre qui l'intéresse pour ceux qui check les barres d'adresses Smiley smile , contrairement à caméra qui est un mots clé qui représente votre activité.
Pour le cas des sousCatégrorie, c'est correct, le lien obtenu n'as pas vraiment d'importance. Par contre, en ce qui concerne les caméras, le lien doit obligatoirement être comme ça, ex:
http://www.spypoint.com/FR/cameras/BF-10HD.html
Comme tu peux voir, j'aimerais, dans l'idéal, "éliminer" le répertoire "chasse" dans ce cas précis.
BF-10HD, correspond à un modèle de caméras, et ce type de lien est inscrit en code QR sur tous les emballages des produits. J'essaie donc d'éviter d'avoir à faire des redirections en plus de urlrewriting.


unami a écrit :
Dans ce cas ton fichier htaccess qui doit se présenter dans la racine doit ressembler à ça:

RewriteEngine on
RewriteRule   ^/FR/cameras/chasse/([a-zA-Z0-9-]+)-cs-([0-9]+)$  /FR/cameras/chasse/index.php?titre=$1&amp;sousCategories=$2  [L]
RewriteRule   ^/FR/cameras/chasse/([a-zA-Z0-9-]+)-camera-([0-9]+)$  /FR/cameras/chasse/camera.php?titre=$1&amp;produit=$2  [L]
Essayé... et je tombe toujours sur la sacrosaint 404... Smiley fache
Salut Smiley smile

Bizzar ! Smiley eek

Ok, ce que je te propose, afin qu'on ne soit pas perdu entre les problèmes de communication et ton besoin et nos réponses, je te conseille de nous décrire ton cas entièrement.
Montres nous ce que tu veux, à travers quelques règles de gestion, en nous montrant le lien physique exemple :
http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=val

et le résultat souhaité, pour les deux cas caméras et sous catégorie.

Et nous verrons ce que nous pouvons faire.

Fourni nous des exemples de liens sur le serveur de prod ou de test.
Modifié par unami (22 Apr 2013 - 18:27)
On reprend du début!

Donc sur cette page:
http://www.spypoint.com/FR/cameras/

On affiche les différentes catégories de caméras (sousCategories)

Les liens dans mon code sont générés dynamiquement, présentement:
<a href="chasse/index.php?sousCategories=<?php echo $info['fr'];?>">
	<img src="../../../Images/photosProduits/<?php echo $info['image']; ?>" height="120" /><br>
	<?php echo $info['fr'];?>
</a>

ça m'affiche donc dans ma barre d'adresse ex:
http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=Infrarouges


En changeant mon code pour:
<a href="http://www.spypoint.com/FR/cameras/chasse/<?php echo $info['lienFR'];?>.html">
on cherche à obtenir
http://www.spypoint.com/FR/cameras/chasse/infrarouges.html


Ce qui m’emmène sur une page qui contient les caméras en relation à la sousCatégories sélectionné ici donc:
http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=Infrarouges


Même principe que pour la page précédente en ce qui concerne les liens, généré dynamiquement, présentement:
<a href="camera.php?produits=<?php echo $produits; ?>">
        <div>...
        </div>
</a>

De là, ça m’emmène sur le page détaillé de la caméras cliqué, ex:
http://www.spypoint.com/FR/cameras/chasse/camera.php?produits=TINY-W2s



en changeant le code pour:
<a href="/FR/cameras/<?php echo $produits; ?>.html">
on cherche à obtenir:
http://www.spypoint.com/FR/cameras/TINY-W2s.html


Présentement dans mon .htaccess, qui est situé à la racine du site, il y a:
Options +FollowSymlinks
RewriteEngine on
RewriteOptions Inherit

AddType text/x-component .htc.

<Files 403.shtml>
order allow,deny
allow from all
</Files>

<Limit GET HEAD POST>
order allow,deny
# Country: CHINA
# ISO Code: CN
# Total Networks: 3,459
# Total Subnets:  330,434,816
deny from 1.0.1.0/24
... /*liste de près de 4000 adresse ip*/
#
allow from all
</Limit>

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^FR\/accueil\.html$ "http\:\/\/www\.spypoint\.com\/FR\/" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^EN\/home\.html$ "http\:\/\/www\.spypoint\.com\/EN\/" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^FR\/cameras\.html$ "http\:\/\/www\.spypoint\.com\/FR\/cameras\/" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^EN\/cameras\.html$ "http\:\/\/www\.spypoint\.com\/EN\/trail\-cameras\/" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^FR\/contact\.html$ "http\:\/\/www\.spypoint\.com\/FR\/contact\.php" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^EN\/contact\.html$ "http\:\/\/www\.spypoint\.com\/EN\/contact\.php" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^ftp\/ftp\.html$ "http\:\/\/www\.spypoint\.com\/FTP\/FTP\.html" [R=301,L]

AddType video/ogg .ogv
AddType video/mp4 .mp4

RedirectMatch permanent ^/EN/trail-cameras/(.*)\.html$  http://www.spypoint.com/EN/trail-cameras/$1.php
 
RedirectMatch permanent ^/EN/products/(.*)\.html$  http://www.spypoint.com/EN/products/$1.php
 

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^support$ "http\:\/\/www\.anymeeting\.com\/spypoint1" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^FTP\/FTP\.html$ "http\:\/\/www\.spypoint\.com\/ressources\/" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^design$ "https\:\/\/www\.dropbox\.com\/sh\/rg3it9mgo2yh2w2\/N\-nQGwDx1X" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^EN\/trail\-cameras\/dummy\.php$ "http\:\/\/www\.spypoint\.com\/EN\/trail\-cameras\/accessories\/dummy\.php" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^EN\/trail\-cameras\/IR\-Booster\/IRB\-W\-B\.php$ "http\:\/\/www\.spypoint\.com\/EN\/trail\-cameras\/accessories\/IR\-Booster\.php" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^FR\/cameras\/LIVE\-info\.html$ "http\:\/\/www\.spypoint\.com\/FR\/cameras\/gestion\-en\-ligne\.html" [R=301,L]
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^EN\/trail\-cameras\/LIVE\-info\.php$ "http\:\/\/www\.spypoint\.com\/EN\/trail\-cameras\/online\-management\.php" [R=301,L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/FR/cameras/chasse/(.*)\.html$ "http://www.spypoint.com/FR/cameras/chasse/index.php?sousCategories=$1" [L]

RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/FR/cameras/(.*)\.html$ "http://www.spypoint.com/FR/cameras/chasse/camera.php?produits=$1" [L]

Mes lignes pour les rewriting son à la fin donc. Les redirections qui précèdent mes lignes de code sont généré via mon panneau de contrôle. Mais je ne peux par faire de rewriting à partir de ce panneau.
Par contre, j'ai remarqué ceci, il s'agit du tableau, dans mon panneau de contrôle de mon hébergeur, qui contient la liste des redirections du site. Les 2 dernières lignes correspondent à mes rewritting. Si on remarque bien la 3e colonnes, les adresses inscrite s'arrêtent au "="
upload/22504-table.jpg
Salut

Là je dois te reposer la question, comment tu t'es assurée que ton hébergeur a bien activé le module "mod_rewrite" car si c'est basé sur le tableau passé en image, je dirais que ça n'implique pas, et là je dois t'informer que même les redirections injectées par ton Manager ne fonctionnent pas Smiley eek

Et j'ai une autre remarque soit ton tableau en image n'est pas à jours ou le contenu de ton htaccess n'est pas à jours, car les groupes que tu as défini pour les deux liens sont (.*) (Normalement ça doit être un + au lieu de *) mais au niveau de ton tableau nous avons un groupe: ([a-z-]+) et l'autre ([a-aA-Z0-9-]+).

Une autre remarque c'est que tu n'as pas besoin de toutes ces \/ et dans le 2 ème argument tu n'as absolument pas besoin d'aucun \, ça rend tes expressions pénible à lire.

Aussi tu n'as pas besoin dans aucune de tes redirections ou tes réécriture de ça:
RewriteCond %{HTTP_HOST} ^.*$

si comme au niveau de PHP pour chaque instruction tu la conditionnes par un if(true) ! Smiley biggol

Alors comme j'ai dit, vérifies que l'URLRewriting est pris en charge pour ton hébergement à coup sûr, car même les redirections configurées à l'aide de ton manager ne fonctionnent pas.

Après nous verrons d'où provient ton problème car c'est vraiment bizzar, j'ai travaillé plusieurs fois avec et je n'ai jamais rencontré ce genre de problème.
unami a écrit :
comment tu t'es assurée que ton hébergeur a bien activé le module &quot;mod_rewrite&quot; car si c'est basé sur le tableau passé en image, je dirais que ça n'implique pas
j'ai parlé directement avec le gars! Mais je pourrais le recontacter pour revérifier, parce que justement ça ne semble pas s'appliquer malgré que mon expression reg semble correct.

unami a écrit :
et là je dois t'informer que même les redirections injectées par ton Manager ne fonctionnent pas Smiley eek
J'avais pourtant vérifier ça...

unami a écrit :
Et j'ai une autre remarque soit ton tableau en image n'est pas à jours ou le contenu de ton htaccess n'est pas à jours, car les groupes que tu as défini pour les deux liens sont (.*) (Normalement ça doit être un + au lieu de *) mais au niveau de ton tableau nous avons un groupe: ([a-z-]+) et l'autre ([a-aA-Z0-9-]+).
Oui, je sais, j'ai probablement fait des changements entre le moment où j'ai écris le code ici et le moment où j'ai fait le screen. Dans tous les cas j'ai essayé les 3 possibilité, aucune ne fonctionne.

unami a écrit :
Une autre remarque c'est que tu n'as pas besoin de toutes ces \/ et dans le 2 ème argument tu n'as absolument pas besoin d'aucun \, ça rend tes expressions pénible à lire.

Aussi tu n'as pas besoin dans aucune de tes redirections ou tes réécriture de ça:
RewriteCond %{HTTP_HOST} ^.*$

si comme au niveau de PHP pour chaque instruction tu la conditionnes par un if(true) ! Smiley biggol
Généré par le manager...

unami a écrit :
Alors comme j'ai dit, vérifies que l'URLRewriting est pris en charge pour ton hébergement à coup sûr, car même les redirections configurées à l'aide de ton manager ne fonctionnent pas.
Je vais tenter de les rejoindre
Je fais un petit retour sur le sujet.

Effectivement, plusieurs redirections de mon htaccess ne fonctionnent pas et ce malgré que je les ais supprimé et réécrite à l'aide de mon manager. Pourtant plusieurs fonctionnent encore...

L'hébergement de mon site est devenue complexe c'est dernier temps ça peu expliqué pourquoi les redirections ne fonctionnent plus. Il faudra donc que je les refasses manuellement, mais je devrai d'abord trouver la bonne méthode.
Encore un petit up!

Les redirections sont corrigé. J'ai dù remplacer :
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^EN\/trail\-cameras\/LIVE\-info\.php$ "http\:\/\/www\.spypoint\.com\/EN\/trail\-cameras\/online\-management\.php" [R=301,L]
Par ceci:
RedirectMatch permanent ^/EN/trail-cameras/LIVE-info.php$  http://www.spypoint.com/EN/trail-cameras/online-management.php

Et ça fonctionne.

Plus qu'à continuer à bossé sur le rewriting, et là je suis encore dans le néant...
Si j'utilise le "RedirectMatch permanent" ça ne fonctionne qu'en parti. En fait ça ne fair que redirigé les adresses des caméras vers la bonne adresse. ça ne la réécrit pas et surtout ça crée de sérieux bug sur les autres page de la section.
Pages :