8710 sujets

Développement web côté serveur, CMS

Bonjour tout le monde,
Je me tourne vers vous car je suis confronté au problème suivant :

Je viens de mettre en place la réécriture d'url sur mon site ,

Voici le contenu de mon .htaccess :


RewriteEngine On
Options +FollowSymlinks
RewriteBase /boblenon/

RewriteRule home/ index.php
RewriteRule press/ press.php
RewriteRule partners/ ?on=partners


RewriteRule infos/ ?on=infos [L]
RewriteRule cine/ ?on=cine [L]



Et au niveau de mon url j'ai :

http:// monsite.fr /infos/cine/ au lieu de  http://  monsite.fr / cine / lorsque je souhaite consulter  la page cinéma.

 http://  monsite.fr /infos/cine/home au lieu de  http://  monsite.fr / home / lorsque je souhaite revenir à la page d'accueil.



Quelqu'un aurait- il une idée ?

merci
Modifié par blobi (15 Apr 2013 - 10:49)
Salut, peut tu expliquer un peu mieux ton problème ? Que veut tu faire ? C'est quoi qui ne fonctionne pas ?
Bonjour benj,
euh je vais essayer de clarifier un peu mon problème.

Alors voilà :

en fait, lorsque je navigue sur mon site, j'ai bien une réécriture d' URL qui se fait :
http://monsite.fr/index.php

devient bien : http://monsite.fr/home .

Mais lorsque je consulte d'autres pages et que je change de page la réécriture bug :

exemple je consulte la page de mes videos :
http://monsite.fr/?on=vids
devient bien http://monsite.fr/vids

mais lorsque je change de page , admettons que de la page http://monsite.fr/vids je veuille aller sur la page blog : http://monsite.fr/blog .

Ben la gros probleme, ça me donne :

http://monsite.fr/vids/blog

au lieu de
http://monsite.fr/blog (ce qui correspond à http://monsite.fr/?on=blog )
blobi a écrit :

exemple je consulte la page de mes videos :
http://monsite.fr/?on=vids
devient bien http://monsite.fr/vids


En général c'est le contraire qu'on cherche à faire ! Je consulte la page vids via le lien http://monsite.fr/vids, qui est un équivalent à http://monsite.fr/?on=vids.

J'ai l'impression que ton problème ne vient pas de tes règles de ton .htaccess mais de l'écriture de tes liens dans ton html.
Tes liens sont générés dynamiquement dans ton code ? Via une variables php ?
benj a écrit :

Tes liens sont générés dynamiquement dans ton code ? Via une variables php ?


Mes pages sont en fait des includes que je fais via mon index.php et la variable "on".

Comme il suit :

if ((isset($_GET['on'])) && $_GET['on']!="home"){
    $p=  strtolower ($_GET['on']);
    $d= "pages/";
         
    if (preg_match("/^[a-z0-9\1-\_]+$/", $p) && file_exists($d.$p.".php")){
        include_once ($d.$_GET['on'].".php");
    }
    else {
       echo ('la page n existe pas');
    }
        
}
else {
     echo ('la page n existe pas');
}
blobi a écrit :


Mes pages sont en fait des includes que je fais via mon index.php et la variable "on".

Comme il suit :

Ca c'est la génération de tes pages, pas de tes liens dans ton code html Smiley cligne
Voici mon menu de navigation, j'appelle mes pages html juste en mettant par exemple "home/" :


<div class="navi black">  
				<ul id="mega-menu-8" class=" mega-menu">
					<li><a href="../">RADIO</a>
						<ul>
							<li><a href="#">ECOUTER un hit</a>
							    <ul>
									<li><a href="#"> en direct</a></li>
									<li><a href="nomade/">, partout avec vous !</a></li>
									<li><a href="titres_diffuses/">Les titres diffuses</a></li>
									<li><a href="demande_hit/">Demandez un hit !</a></li>
								</ul>
							</li>
							<li><a href="emissions/">Vos émissions</a>
								<ul>
									<li><a href="#">15 TUBES PAR HEURE !</a></li>
									<li><a href="#">L'AFTER CLUB AVEC DJ AXE</a></li>
									<li><a href="#">Product 3</a></li>
								</ul>
							</li>
							
							<li><a href="#">Vos Palylists/Classements</a>
							    <ul>
									<li><a href="#">Product 10</a></li>
									<li><a href="#">Product 11</a></li>
									<li><a href="#">Product 12</a></li>
									<li><a href="#">Product 13</a></li>
								</ul>
							</li>
						</ul>
					</li>
					<li><a href="actus/">ACTUS</a>
						<ul>
							<li><a href="#">Actus</a>
					<ul>
						<li><a href="infos/">Les Infos</a></li>
						<li><a href="cine/">Sorties Cine</a></li>
					</ul>
					</li>
					<li><a href="#">Infos Pratiques</a>
					<ul>
						<li><a href="radars/">Alertes radars</a></li>
						<li><a href="horoscope/">Horoscope</a></li>
						<li><a href="meteo/">Meteo</a></li>
						<li><a href="carburant/">Infos Carburants</a></li>
					</ul>
				</li>
					
				</ul>
				</li>
				<li><a href="#">JEUX</a>
				<ul>
					<li><a href="#">Concours RADIOMED</a>
					<ul>
						<li><a href="jeu">Jeux en ligne</a></li>
						<li><a href="jeux_sms">Jeux SMS / AUDIOTEL</a></li>
					</ul>
				</li>
				<li><a href="reglements">Reglements</a>
					<ul>
						<li><a href="jeux_reglements/">Jeux en ligne</a></li>
						<li><a href="jeux_reglements">Jeux en SMS /Audiotel </a></li>
					</ul>
				</li>
					<li><a href="#">Service 3</a>
					<ul>
						<li><a href="#">Service Detail D</a></li>
						<li><a href="#">Service Detail E</a></li>
						<li><a href="#">Service Detail F</a></li>
					</ul>
				</li>
				</ul>
				</li>
				
					<a class="btn  btn-danger" href="#">Ecouter le live RadioMed </a>
				
				
				<li><a href="contact">Contact</a></li>
					<li style="float:right;"><a href="#">Service 3</a>
					<ul>
						<li><a href="#">Service Detail D</a></li>
						<li><a href="#">Service Detail E</a></li>
						<li><a href="#">Service Detail F</a></li>
					</ul>
				</li>
				<li style="float:right;"><a href="#">Service 3</a>
					<li style="float:right;"><a href="#">Service 3</a>
				
				</ul>
			</div>

Écrit tes url en absolu (href="http://nomdomaine/cine") ou alors ajoute une extension. Genre href="cine.html".
J'ai bien essayé de mettre une extension .html , mais j'ai toujours le même soucis

quand je suis sur ma page video : http://monsite.fr/v/titredemavideo.html et que je souhaite revenir sur ma page d'acceuil ou meme une autre page dans l'url ça ne remonte pas :

çà marque http://monsite.fr/v/home.html au lieu de http://monsite.fr/home.html

et ceci peut importe la page demandée !

http://monsite.fr/v/news.html au lieu de http://monsite.fr/news.html
Modifié par blobi (21 Apr 2013 - 18:38)
Salut

Fait comme a dit Benj, tu dois écrire tes URL en absolu, le fait d'ajouter une extension ne va pas résoudre le problème, tout simplement car les navigateurs ne savent pas l'arborescence physique de tes fichiers et répertoire et se basent sur l'URL pour savoir dans quel répertoire ils sont, alors que toi tu fais usage à des répertoire virtuel à l'aide de l'URLRewriting, je te donne un exemple:

J'ai un fichier dans un répertoire dont le chemin physique est:
www/scripts/data/front/categories/monfichier.html

www est la racine de notre serveur
et à l'aide de la réécriture je l'affiche en cas l'URL demandé est:
http://www.monsite.fr/Catgeorie/liste-produits-cosmetiques
(C'est ce qui me vient à l'esprit Smiley lol )
si je veux allez à l'index.html qui se trouve normalement dans la racine, au temps que je me retrouve dans la page
http://www.monsite.fr/Catgeorie/liste-produits-cosmetiques
et dans cette page j'ai mis dans un lien href="home", ce dernier est un chemin relatif (au dernier répertoire affiché dans l'URL), alors le navigateur demandera l'URL
http://www.monsite.fr/Catgeorie/home

Les chemins relatifs sont traité par le navigateur pas par le serveur, ce dernier reçoit l'URL complète de ce que tu cherches, alors:
- href="fichier.html" le navigateur prendra l'url jusqu'au dernier "/" (le dernier répertoire) et lui rajoute fichier.html
-href="/fichier.html" le naviagteur prend le nom de domaine et lui rajouter le nom du fichier exemple
http://www.monsite.fr/fichier.html

-href="./fichier.html" c'est pour dire le dossier encours, comme le premier cas.
-href="../fichier.html" c'est pour dire le dossier parent de celui affiché selon la définition de ton url, exemple:
si sur cette page
http://www.monsite.fr/Catgeorie/cosmetique/liste-produits

nous avons un lien, href="../fichier.html" le navigateur va chercher:
http://www.monsite.fr/Catgeorie/fichier.html


Bref, faut user des chemins absolus c'est la meilleure pratique, même pour d'autres cas.
J'espère que ça t'aide.

Bon courage