Page 1 sur 1

Problème avec url dans htaccess

Posté : 09 mai 2015, 15:40
par lanfeust2
Bonjour,

Mon problème est le suivant, j'ai des pages avec ce code dans le htaccess pour la réécriture :

Code : Tout sélectionner

RewriteRule ^document/(.+)-([0-9]*).html$ /afficheFichiers.php?document=$2 [QSA,L]
Seulement, si je souhaite modifier le titre d'une page et ensuite faire une redirection 301 de l'ancienne page vers la nouvelle j'écris tjs dans le htaccess :

Code : Tout sélectionner

Redirect permanent /document/mon-document-version1-157.html /document/mon-document-version2-157.html
Ce qui me redirige (et mon problème est la) vers :
/document/mon-document-version2-157.html?document=157

Hors comme j'ai une règle dans le fichier robots.txt

Code : Tout sélectionner

Disallow: /*?
Et bien la redirection n'est pas prise en compte...

Comment faire ?

Re: Problème avec url dans htaccess

Posté : 09 mai 2015, 15:47
par tof73
le contenu du robots.txt n'influe en rien sur ce qu'il y a dans le .htaccess

quel est l'ordre dans le .htaccess ?

Re: Problème avec url dans htaccess

Posté : 09 mai 2015, 15:49
par lanfeust2
Ho et (car je pense que c'est un problème php et non htaccess !?) ma construction de page est la suivante dans mon fichier :

Code : Tout sélectionner

$url="http://www.test.com/document/".nettoyage($download->dfilename)."-".$download->did.".html";

Re: Problème avec url dans htaccess

Posté : 09 mai 2015, 15:54
par lanfeust2
L'ordre dans mon htaccess est le suivant :

Code : Tout sélectionner

<IfModule mod_headers.c> # les .ico, .jpg, etc… seront en cache pour 30 jours <FilesMatch "\.(ico|jpe?g|png|gif|swf|css|gz)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch> <FilesMatch "\.(js)$"> Header set Cache-Control "max-age=2592000, private" </FilesMatch> # Disable caching for scripts and other dynamic files <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> </IfModule> <IfModule mod_expires.c> ExpiresActive On #Les images .jpg seront en cache pour 30 jours ExpiresByType image/jpg "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" #Les images .png seront en cache pour 30 jours 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 A2592000 ExpiresByType application/x-javascript "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" </IfModule> Redirect permanent /document/mon-document-version1-157.html /document/mon-document-version2-157.html <Limit GET POST> Order Deny,Allow Allow from all Allow from googlebot.com Deny from env=keep_out </Limit> # 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 ErrorDocument 401 /erreurs/erreur404.php ErrorDocument 403 /erreurs/erreur404.php ErrorDocument 405 /erreurs/erreur404.php ErrorDocument 404 /erreurs/erreur404.php #Anti Listage des repertoires Options -Indexes <Files ~"\.ht$"> Order Allow,Deny deny from all Satisfy All </Files> <Files ~"\config.php$"> deny from all </Files> # deny most common except .php <FilesMatch "\.(inc|tpl|h|ihtml|sql|ini|conf|class|bin|spd|theme|module)$"> deny from all </FilesMatch> <Limit GET PUT POST> Order Allow,Deny Allow from all </Limit> #Permet de faire fonctionner le rewriting donc remettre si probleme #Options +FollowSymlinks <IfModule mod_speling.c> CheckSpelling On </IfModule> # Controle du nom de domaine et reecriture de misfu.com vers www.misfu.com et index.html et php vers la racine RewriteCond %{HTTP_HOST} ^misfu.com$ RewriteRule ^(.*) http://www.test.com/$1 [qsa,L,R=301] RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(php) RewriteRule ^(.*)index.(php)$ /$1 [R=301,L] RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ (/.*)?/index.(html) RewriteRule ^(.*)index.(html)$ /$1 [R=301,L] <ifmodule mod_deflate.c> # Mettre les deux lignes suivantes en une seule # Ici je les ai separe pour l'affichage du site AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule> RewriteRule ^cours/tutoriel/(.+)-([0-9]*).html$ /afficheCours.php?cours=$2 [QSA,L]

Re: Problème avec url dans htaccess

Posté : 09 mai 2015, 16:02
par lanfeust2
Tof
le contenu du robots.txt n'influe en rien sur ce qu'il y a dans le .htaccess

quel est l'ordre dans le .htaccess ?
Mais sinon, effectivement le robots.txt n'influe pas mais comme ma redirection va créer des pages : .html?document=x au lieu de finir par .html et bien si je retire le robots.txt alors j'aurai 2 pages identiques référencé dans google...

Re: Problème avec url dans htaccess

Posté : 09 mai 2015, 16:32
par lanfeust2
Je pense que mon problème vient de la méthode $_GET qui a été employé :

Code : Tout sélectionner

if (!isset($_GET['document']) || $_GET['document']=='') { header('Location: http://www.test.com/'); } else { $document=$_GET['document']; ....lasuite....
Puis

Code : Tout sélectionner

$url="http://www.test.com/document/".nettoyage($download->dfilename)."-".$download->did.".html";

Mais si je change les $_GET par $_POST (c'est peut être stupide...) alors si je rentre l'adresse www.test.com/document/mon-exemple-125.html je suis alors redirigé vers www.test.com au lieu de www.test.com/document/mon-exemple-125.html

Re: Problème avec url dans htaccess

Posté : 11 mai 2015, 19:55
par lanfeust2
Bon, j'ai fini par résoudre mon problème mais la méthode n'est pas très propre...

Je récupère l'url courante, je la compare avec l'url qu'il me faut et si elle est différente alors redirection 301 en php vers la bonne.

Donc ça me fait 2 redirections 301 (1 avec htaccess et la deuxième en php) avant d'arriver à la bonne page.
url1 ----301-----> url2?document=xxx ----301----> url2