Point d'interrogation dans l'URL

WRInaute occasionnel
Bonjour,


Je viens de remarquer que quel que soit l'url. Si on rajoute à la fin de cette url, un point d'interrogation suivi de n'importe quoi, du style: ?dfsfsddsfs , on arrive toujours sur le contenu de l'url de départ.
Pour être plus clair:
Si on prend par exemple:
www. example.com/page1/page2
www. example.com/page1/page2?fdssdss
www. example.com/page1/page2?reterterrttrette

Ces 3 urls sont effectives .
N'y a t-il pas risque de contenu dupliqué ? ( Même s'il est évident que je ne vais pas m'amuser à intégrer ce genre d'url)
Mais que cela soit possible, me gêne.

N'y a t-il pas possibilité d'avoir plutôt une erreur 404 pour de telles url ?

Merci
 
WRInaute passionné
Slt,

D'ailleurs, ça, ça devrait fonctionner, mais chez moi ça colle une belle err 500
Code:
RewriteCond %{QUERY_STRING} !=''
RewriteRule ^(.*)$ /$1? [R=301,L]
 
WRInaute occasionnel
Bonjour,

Apres réflexion et sachant qu'il s'agit d'un site sous le cms joomla, voilà l'idée que j'ai eu. Sachant que le site est en url rewriting donc sans ? à priori.
J'ai donc pensé détecter les éventuels points d'interrogations et mettre dans ce cas <meta name="robots" content="noindex,follow" /> pour la page concernée.

Dans l'index du template , j'ai donc mis:
Code:
$uri    = JURI::getInstance();
$query = $uri->toString(array('query')); 

if(strpos($query, "?") !== FALSE) echo '<meta name="robots" content="noindex,follow" />';

Qu'en pensez-vous ?

Merci

Eric
 
WRInaute occasionnel
Koxin-L.fr a dit:
Et pourquoi ne pas la rediriger via une 301 vers la page sans le ?

A ben oui, c'est plus judicieux en effet.

Voilà donc la modif:
Code:
$url_courante=JURI::current();

$uri    = JURI::getInstance();
$query = $uri->toString(array('query'));  

    if(strpos($query, "?") !== FALSE)
        {
		header ('HTTP/1.1 301 Moved Permanently');
		header("Location: ".$url_courante);
		jexit(); 
       }

Je pense que cela doit être bon

Eric
 
Discussions similaires
Haut