Tout rediriger sauf une page contenant 'JS'

Nouveau WRInaute
Bonjour
Je débute totalement et bien que j ai lu avec attention la page https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritecond je n ai absolument rien compris sinon que ce que je souhaite faire est faisable mais je n ai aucune idée de comment proceder.

J aimerai rediriger tout le trafic entrant de mon site vers la page index.php SAUF si l'url contient 'NO_JS'.
Si l url contient NO_JS, j aimerai diriger vers NO_JS.php, dans le même répertoire que index.php.
En effet, j ai besoin de JS pour faire fonctionner mon site donc dans la page index j ai une balise <NoScript> qui redirige vers NO_JS.PHP

Merci de votre aide
 
WRInaute impliqué
On pourrait faire ça avec une expression rationnelle avec une assertion avant négative (negative lookahead) du style "^(?!.*(NO_JS))" ce qui a l'élégance de la regex, mais on peut faire plus simple dans le cadre d'une réécriture d'URL.

Je suppose que bien que tu indiques vouloir tout renvoyer vers "index.php" tu ne souhaites pour autant pas rediriger les fichiers (les images, css, scripts et autres) vers index.php (si tel était le cas, virer les deux premières lignes) :

Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !NO_JS
RewriteRule .* /index.php [R=301,L]
 
Nouveau WRInaute
Merci d'avoir pris le temps de me répondre mais quand j execute le script index php la redirection fonctionne puisque dans l url je vois bien l'url style monsite.com/NO_JS.php mais la page qui s affiche est bien la page index.php et cela redirige sans cesse.ça tourne en boucle.
Peut être ma logique n etait pas bonne ?
Mon index.php
Code:
<html lang="fr">

<head>
    <title>page js ok</title>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
    <noscript>
    <meta http-equiv="refresh" content="0; url=NO_JS.php"/>
    </noscript>
</head>
<body>
    <h1>Js activé</h1>
</body>
</html>

ma page NO_JS.php
Code:
<html lang="fr">
<head>
    <title>page PAS JS</title>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
</head>
<body>   
    <h1>NO Js activé</h1>
</body>

</html>
 
Discussions similaires
Haut