CloudFlare probleme ?

Eléphanteau du PHP | 34 Messages

14 Juin 2015, 02:37

Bonjour, les amis, avec ma fiancée, on est entrain de crée un site, nous utilisons cloudflare pour assurer le cache et l'optimisation et surtout la sécurité.

Mais j'ai pû m'apercevoir d'un enorme bug ou erreur de la part de CloudFlare, en faite lorsque je fait une recherche du style :
site:notresite.com sur google

Google nous sort notre site mais également des liens du style :

notresite.com/?p=223 et ainsi de suite, plusieurs pages avec des numéros différents, savez vous d'oû vient ce soucis, je cherche mais je trouve pas.

Merci par avance

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7108 Messages

14 Juin 2015, 08:40

Bonjour,

Cela ne vient très certainement pas de Cloudflare mais de ton site.
Ça ressemble à un id de page. A toi de regarder dans le CMS que tu utilises pourquoi l'url rewriting (qui permet d'avoir des url "jolies") ne fonctionne pas sur ce type de pages.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 34 Messages

14 Juin 2015, 14:17

Merci de ta réponse, impossible je n'utilise pas de CMS c'est sur mesure.
Peut être une galère dans le htaccess ?

Code : Tout sélectionner

Options +FollowSymlinks
php_flag apc.cache_by_default On

# protect the htaccess file
<files .htaccess>
order allow,deny
deny from all
</files>

# protection de la lecture des répertoires
Options -Indexes

# BEGIN Cache-Control Headers
<ifmodule mod_headers.c>
 <filesmatch "\\.(ico|jpe?g|png|gif|swf|gz|ttf)$">
 Header set Cache-Control "max-age=2592000, public"
 </filesmatch>
 <filesmatch "\\.(css)$">
 Header set Cache-Control "max-age=2592000, public"
 </filesmatch>
 <filesmatch "\\.(js)$">
 Header set Cache-Control "max-age=2592000, private"
 </filesmatch>
<filesmatch "\\.(html|htm)$">
Header set Cache-Control "max-age=7200, public"
</filesmatch>
# Disable caching for scripts and other dynamic files
<filesmatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</filesmatch>
</ifmodule>
# END Cache-Control Headers

RewriteEngine on
#Check to see if browser can accept gzip files. If so and we have it – serve it!
ReWriteCond %{HTTP:accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
#make sure there’s no trailing .gz on the url
ReWriteCond %{REQUEST_FILENAME} !^.+.gz$
#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f
#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [QSA,L]
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_keep_workfiles No
mod_gzip_can_negotiate Yes
mod_gzip_add_header_count Yes
mod_gzip_send_vary Yes
mod_gzip_command_version ‘/mod_gzip_status’
mod_gzip_min_http 1000
mod_gzip_minimum_file_size 300
mod_gzip_maximum_file_size 512000
mod_gzip_maximum_inmem_size 60000
mod_gzip_handle_methods GET POST
mod_gzip_temp_dir /tmp
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .pl$
mod_gzip_item_include file .rb$
mod_gzip_item_include file .py$
mod_gzip_item_include file .cgi$
mod_gzip_item_include file .css$
mod_gzip_item_include file .js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</ifmodule>

# BEGIN Expire headers
<ifmodule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 7200 seconds"
 ExpiresByType image/jpg "access plus 2592000 seconds"
 ExpiresByType image/jpeg "access plus 2592000 seconds"
 ExpiresByType image/png "access plus 2592000 seconds"
 ExpiresByType image/gif "access plus 2592000 seconds"
 AddType image/x-icon .ico
 ExpiresByType image/ico "access plus 2592000 seconds"
 ExpiresByType image/icon "access plus 2592000 seconds"
 ExpiresByType image/x-icon "access plus 2592000 seconds"
 ExpiresByType text/css "access plus 2592000 seconds"
 ExpiresByType text/javascript "access plus 2592000 seconds"
 ExpiresByType text/html "access plus 7200 seconds"
 ExpiresByType application/xhtml+xml "access plus 7200 seconds"
 ExpiresByType application/javascript A259200
 ExpiresByType application/x-javascript "access plus 2592000 seconds"
 ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
</ifmodule>
# END Expire headers

# KILL THEM ETAGS
Header unset ETag
FileETag none

###FILTRE CONTRE ROBOTS DES PIRATES ET ASPIRATEURS DE SITE WEB
RewriteEngine On
## EXCEPTION: TOUS LES ROBOTS MEMES ANONYMES OU BANNIS PEUVENT ACCEDER A CES FICHIERS
RewriteCond %{REQUEST_URI} !^robots.txt
RewriteCond %{REQUEST_URI} !^sitemap.xml

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

 
## contrôle du cache navigateur - Expire headers 
    <IfModule mod_expires.c> 
        ExpiresActive On 
        ExpiresDefault "access plus 7200 seconds" 
        ExpiresByType image/jpg             "access plus 1 week" 
        ExpiresByType image/jpeg            "access plus 1 week" 
        ExpiresByType image/png             "access plus 1 week" 
        ExpiresByType image/gif             "access plus 1 week" 
        AddType image/x-icon .ico 
        ExpiresByType image/ico             "access plus 1 week" 
        ExpiresByType image/icon            "access plus 1 week" 
        ExpiresByType image/x-icon          "access plus 1 week" 
        ExpiresByType text/css              "access plus 1 week" 
        ExpiresByType text/javascript       "access plus 1 week" 
        ExpiresByType text/html             "access plus 7200 seconds" 
        ExpiresByType application/xhtml+xml     "access plus 7200 seconds" 
        ExpiresByType application/javascript    "access plus 1 week" 
        ExpiresByType application/x-javascript  "access plus 1 week" 
        ExpiresByType application/x-shockwave-flash "access plus 1 week" 
    </IfModule>
 
   ## Mise en cache cache-control
   <IfModule mod_headers.c>
   <FilesMatch "\\.(ico|jpe?g|png|gif|swf)$">
      Header set Cache-Control "max-age=2592000, public"
   </FilesMatch>
   <FilesMatch "\\.(css)$">
      Header set Cache-Control "max-age=2592000, public"
   </FilesMatch>
   <FilesMatch "\\.(js)$">
      Header set Cache-Control "max-age=2592000, private"
   </FilesMatch>
   <FilesMatch "\\.(x?html?|php)$">
      Header set Cache-Control "max-age=600, private, must-revalidate"
   </FilesMatch>


si on regarde sur google chaque page du style : notresite.com/?p=223 à un titre : "welcome to notresite.com" et sa renvoie vers l'accueil.
Sachant que j'utilise également plesk.

Mammouth du PHP | 674 Messages

14 Juin 2015, 14:37

google a trouvé ces liens, soit car il y a un bug dans ton site, qui a généré ces liens, soit un site externe fait des liens vers des urls avec ?p=223

Eléphanteau du PHP | 34 Messages

14 Juin 2015, 15:18

Je pense également si quelqu'un aurait utilise mon domaine avant pour héberger un wordpress, google à peut etre cela en caché, y a pas un moyen de demander à google de pas indexer ce genre de liens.

Parqu'il y a des milliers de liens de ce genre : de ?p=1 jusqu'à ?p=3000 et autres.
Il y a egalement des liens en ?page_id= et ?cat=1

ViPHP
ViPHP | 5876 Messages

14 Juin 2015, 15:33

Pour cela, pour les TLDs les plus courants (pas le .fr), vous pouvez vérifier sur l'outil suivant l'historique du domaine :
http://www.hosterstats.com/

Cordialement

Eléphanteau du PHP | 34 Messages

14 Juin 2015, 16:19

Merci, d'après l'historique mon domaine à voyager beaucoup (de host en host) depuis 2002 (environ 15 changements de registrars)

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7108 Messages

14 Juin 2015, 17:03

linker65 a écrit :Je pense également si quelqu'un aurait utilise mon domaine avant pour héberger un wordpress, google à peut etre cela en caché, y a pas un moyen de demander à google de pas indexer ce genre de liens.

Regarde du côté de Google Search Console (nouveau nom de Google Webmaster Tools) : https://www.google.com/webmasters/tools/home?hl=fr
Tu peux y demander la suppression de certaines url.
Sinon une autre solution est de mettre un robots.txt avec la liste des urls concernées.
Dernière possibilité, faire de l'url rewriting avec un code HTTP 301 (redirection permanente) pour dire à Google que l'ancienne url n'existe plus et qu'il doit prendre la nouvelle.
Ou sinon, le plus simple, tu laisses ces url échouer vers des 404 et Google ferra le ménage en supprimant par lui même ces adresses...
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 34 Messages

14 Juin 2015, 20:37

j'avais envisager cela mais il y a des milliers :

?p=1
?p=2
....
?p=2000

Comment faire pour les supprimer automatiquement?
Cordialement.

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7108 Messages

14 Juin 2015, 23:08

Ça dépend de la solution que tu retiens parmi celles que je t'ai indiquées.
Si c'est de l'url rewriting, tu peux utiliser une expression régulière [0-9]+ pour représenter tous les nombres
Si c'est un fichier robots.txt, il faut effectivement que tu listes les url, à mon avis ça se fait en 3 lignes de codes en PHP pour générer la liste de 1 à 3000 avec une simple boucle for() à défaut, si tu ne veut pas coder une boucle for() pour générer ton fichier, tu peux faire ça dans Excel facilement en mettant 1 dans la première cellule et en étirant jusqu'à la 3000ème ;)
Quand tout le reste a échoué, lisez le mode d'emploi...