catch-all à la fin

  • Auteur de la discussion Auteur de la discussion Krams
  • Date de début Date de début
Nouveau WRInaute
Bonjour,

voilà, je voudrais réécrire suivant quelques règles, ensuite envoyer vers une page précise si rien après le nom de domaine, et envoyer tout le reste en 404 ou vers une page d'erreur.

J'ai utilisé le htaccès suivant, toutes les règles fonctionnent sauf la dernière (404) qui fait générer une erreur 500, même si c'est la seule règle que je laisse... quelqu'un aurait une idée sur comment faire un genre de catch-all à la fin ??

Code:
RewriteEngine on
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}/([0-9]){1,5}-([0-9]){1,5}$ /index.php?lang=$1&mod=$2&submod=$3&id=$4&pagin=$5 [L]
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}-([0-9]){1,5}$ /index.php?lang=$1&mod=$2&submod=$3&id=0&pagin=$4 [L]
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}/([0-9]){1,5}$ /index.php?lang=$1&mod=$2&submod=$3&id=$4&pagin=0 [L]
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}$ /index.php?lang=$1&mod=$2&submod=$3 [L]
RewriteRule ^$ /index.php?lang=0&mod=main&submod=chooselang [L]
RewriteRule ^(.*)$ /404.php?url=$1 [L]

Pour info, j'ai essayé avec toutes les combinaisons ^.* ^.+ avec ou sans parenthèses et avec ou sans $... mais tout me donne une 500

Merci d'avance à ceux qui auraient une idée...
Krams

Edit: début de réponse, si je fais ceci ça marche:
Code:
RewriteRule ^(.*)$ https://www.google.be [L]
 
Nouveau WRInaute
Code:
RewriteEngine on
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}/([0-9]){1,5}-([0-9]){1,5}$ /index.php?lang=$1&mod=$2&submod=$3&id=$4&pagin=$5 [L]
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}-([0-9]){1,5}$ /index.php?lang=$1&mod=$2&submod=$3&id=0&pagin=$4 [L]
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}/([0-9]){1,5}$ /index.php?lang=$1&mod=$2&submod=$3&id=$4&pagin=0 [L]
RewriteRule ^([a-z]){2}/([a-z]){1,10}/([a-z]){1,10}$ /index.php?lang=$1&mod=$2&submod=$3 [L]
RewriteRule ^$ /index.php?lang=0&mod=main&submod=chooselang [L]
RewriteRule (.*) /404.php?url=$1 [L,NE]

essaye ca
 
Nouveau WRInaute
hello,
je viens d'essayer (avec ou sans délimiteurs ^$) mais j'ai toujours une erreur 500...

je ne suis pas certain de m'y prendre de la bonne façon... en fait je voudrais que tout url non conforme aux règles plus haut donnent une 404 personalisée (avec un vrai status 404 si possible mais ça je verrai après), que la page existe ou non (histoire qu'on ne puisse pas arriver par hasard sur un fichier ou un directory qui existe)

@++
 
Nouveau WRInaute
essaye ca sinon

Code:
ErrorDocument 404 /404.php

tu dois recuperer l'url de la page dans les http_referer normalement
 
Nouveau WRInaute
tes fichiers n'ont pas d'extention ?
donne l'url de depart et celle d'arrivée stp
heu tout redirige vers la page index.php avec des params en GET selon l'url de départ (les règles marchent, pas de problème de ce côté).

tu ne serais pas chez free, par hasard ?
non, chez sivit.

essaye ca sinon
ErrorDocument 404 /404.php
tu dois recuperer l'url de la page dans les http_referer normalement

heu ce n'est pas exactement ce que je veux faire, ce que je voudrais c'est que tout ce qui ne répond pas aux règles reçoivent une 404, même si la page demndée existe.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut