Htacces REQUEST_URI sur des URLs d'un dossier à mettre en noindex

Nouveau WRInaute
Bonjour je souhaite mettre les URLs du type monsite.com/mondossier/xxx en header tag noindex.
Je suis sur Apache 2.4.25

J'ai testé cela qui ne fonctionne pas :
Code:
RewriteCond %{REQUEST_URI} ^/mondossier/(.*)$ [OR]

RewriteCond %{REQUEST_URI} ^/mondossier/(.*) [OR]
RewriteCond %{REQUEST_URI} ^/mondossier(.*) [OR]
RewriteCond %{REQUEST_URI} ^(.*)mondossier(.*) [OR]
RewriteCond %{REQUEST_URI} ^mondossier/(.*)$
RewriteRule (.*) - [E=NOINDEX]
Header set X-Robots-Tag "noindex" env=NOINDEX

C'est curieux car le code ci-dessous fonctionne :
Code:
RewriteCond %{REQUEST_URI} ^/robots\.txt$ [OR]
RewriteCond %{REQUEST_URI} ^/sitemap(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/cart/(.*)$
RewriteRule (.*) - [E=NOINDEX]
Header set X-Robots-Tag "noindex" env=NOINDEX

Avez-vous une piste ?
Bonne journée
 
WRInaute accro
Pour moi ca vient de la condition qui est beaucoup trop longue vu que vous utiliser le regex le plus gourmand qui soit (.*), en y ajoutant la profondeur des dossiers, ca doit boucler boucler boucler et au final renvoyer un 500
 
Nouveau WRInaute
Merci de ce retour. J'ai finalement trouvé. Cela ne fonctionne pas à priori car ce ne sont pas des répertoires physique mais virtuel. "mondossier" n'existe pas. en exécutant monsite.com/mondossier/xxx cela exécute une fonction qui renvoie un dossier.

Je ne sais pas si on peut faire des tests sur des URL "virtuelles"
 
WRInaute accro
Je pense que les chemins relatifs ne sont en effet pas autorisés (comme pour la directive Redirect) vu qu'ils ne sont pas connus à ce stade du traitement.
 
WRInaute accro
perso j'utilise simplement
<filesMatch "robots\.txt$">
Header set X-Robots-Tag "noindex"
</filesMatch>

Peut-être que
<filesMatch "^/mondossier/(.*)$">
Header set X-Robots-Tag "noindex"
</filesMatch>
fonctionne aussi, mais je n'ai pas essayé.
 
WRInaute accro
Idem, vu que les directives de réécriture ne sont toujours pas exécutés à ce stade du traitement, ca ne change rien de l'écrire autrement
 
WRInaute occasionnel
WRInaute accro
Je cherche pas a dire qu'il n'y a pas de solution, je reste septique néanmoins
Code:
RewriteEngine on

## réécriture
RewriteRule   ^test.html$    test.php [ENV=LONGCACHE:true]

## set les entetes a longcache
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" env=LONGCACHE
Header set Pragma "no-cache" env=LONGCACHE
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" env=LONGCACHE

## redirection
RedirectPermanent /test.html   https://exemple.net/


Je viens de tester le code ci dessus vite fait:
- génère un 500 en local sur Wamp apache (les 3 lignes qui set les entetes)
- sur un serveur nginx la réécriture se fait mais pas la redirection (ce qui est le but),

Code:
RewriteEngine on
RewriteRule   ^test.html$    test.php [L]
<filesMatch ".(php|html)$">
Header set Cache-Control "max-age=31536000, public"
</filesMatch>
RedirectPermanent /test.html   https://exemple.net/

Idem, pas de redirection, c'est une fausse piste cette histoire de cache...
 
Dernière édition:
WRInaute occasionnel
Le cas m’intéressait comme exemple pour des personne de mon entourage, j'ai testé ceci :
RewriteCond %{REQUEST_URI} ^/mondossier.*
RewriteRule .* - [E=NOINDEX]
Header set X-Robots-Tag "noindex" env=NOINDEX


upload_2019-10-23_22-0-32.png


je vous place un autre code équivalent pour bien comprendre d'ou vient le test

RewriteCond %{REQUEST_URI} ^/mondossier.*
RewriteRule .* - [E=TOTO]
Header set X-Robots-Tag "noindex" env=TOTO


En francais on a ecrit :
si l'url est de la forme http://blabllalaba/mondossiertructructur
crée une variable d'environnement TOTO

puis ajoute envoie dans le header x-robotag...="no index" si'il existe une variable d'environnement TOTO
 

Fichiers joints

  • upload_2019-10-23_21-58-55.png
    upload_2019-10-23_21-58-55.png
    4.3 KB · Affichages: 1
Discussions similaires
Haut