Besoin d'aide .htaccess (Réglé)

Nouveau WRInaute
Salut à tous,

J'essaie selon plusieurs exemple d'adapter les exemples dans le forums pour créer un rewriting dans mon .htaccess.
Je présume pour que c'est de compliqué. Je veux changer mes pages dynamics de mon directory en php à des pages statiques.
Voici un exemple:
XXXXX.com/search/browse.php?cat=562 qui devriendrait
XXXXX.com/search/browse_562.php

Je voudrais aussi pouvoir tranformer les sous-pages comme
XXXXX.com/search/browse.php?pg_which=2&cat=562
qui devriendrait
XXXXX.com/search/browse_2_562.php

J'ai 800 pages dans le directory.

Voici la ligne de mon dernier dans mon .htaccess que j'ai mis dans le répertoire search:

RewriteRule ^([0-9]+)\.php$ browse.php?cat=$1 [L]

Mais pour la suite je ne sais pas comment le codifier
J'apprécierais de l'aide, j'ai essayé mais sans changement... toujours pareil. Des idées?
 
WRInaute occasionnel
il ne vas pas de \ avant le .php

RewriteRule ^([0-9]+)\.php$

c'Est

RewriteEngine on
RewriteRule ^(.*)/browse_(.*).php$ /$1/browse.php?cat=$2 [L]

ya plusieurs façon qui donne la même chose...
 
WRInaute impliqué
domdom26 a dit:
il ne vas pas de \ avant le .php

RewriteRule ^([0-9]+)\.php$

c'Est

RewriteEngine on
RewriteRule ^(.*)/browse_(.*).php$ /$1/browse.php?cat=$2 [L]

ya plusieurs façon qui donne la même chose...

Heu si il faut un \ devant le . sinon ça signifie "n'importe quel caractère". Or c'est uniquement d'un "." dont on veut. Ensuite mieux vaut restreindre à mort les règles de réécriture, ça fait un filtre de sécurité en plus.
Je suggère ça à la place

Code:
RewriteEngine on
RewriteRule ^(.*)\/browse_([0-9]+)\.php$ /$1/browse.php?cat=$2 [L]
 
Nouveau WRInaute
J'aimerais comprendre pour pouvoir apprendre!

Que veut dire ^(.*)\/browse_([0-9]+)
et pourquoi signe de $ après php
pourquoi mettre /$1/ devant browse
finalement pourquoi toujours finir avec un [L]
 
Nouveau WRInaute
Bon, j'ai essayé les deux rewriting mais ils ne donnent aucun résultat. Je me demande si ça change quelque chose de mettre mon .htaccess dans le répertoire search versus dans celui de tout mon site étant donné que j'ai déjà .htaccess qui est installé pour tout mon site. Quand pensez-vous et comprennez-vous pourquopi ça ne fonctionne pas???
 
Nouveau WRInaute
Qu"est-ce que tu veux dire cdpdf
quand tu me demandes as tu bien changé les liens
et de quels liens tu parles?
 
WRInaute impliqué
si tu as bien essayer avec les nouvelles url rewrité. car c'est déjà arrivé que des personnes ne change que le fichier .htaccess et se disent que c'est tout.
 
Nouveau WRInaute
Je m'excuse de te poser la question, je commence dans ce domaine mais Qu'est-ce je dois faire après avoir changé mon .htaccess?
 
Nouveau WRInaute
Non seulement j'ai testé mais aussi je suis en IE donc fermé mon browser et réouvert... Bon tu m'as fait peur, je pensais que j'étais vraiment nul!!! Je me demande si tu aurais d'autres suggestions?
 
WRInaute impliqué
Bon on va faire simple -_-
Tu dis que quand tu clic sur un lien ça ne fonctionne pas, peux-tu donner l'URL du lien s'il te plait ?
Parce que changer le .htaccess c'est bien beau mais il faut aussi changer les liens pour qu'ils correspondent aux règles que tu souhaites appliquer.

J'pense que tu devrais lire la doc .htaccess pque tu appliques plein de chose sans comprendre ce que tu fais et c'est pas bon du tout. Y'a un article sur Webrankinfo, lis le ça ira mieux après. On pourra t'expliquer ce que tu ne comprendras pas après coup.
 
Nouveau WRInaute
Salut The Jedi, voilà je t'envoie un de mes liens http://www.tekclick.com/search/browse.php?cat=534 ça te donneras une idée. Maintenant, je m'assure de tj faire une recherche sur le forum avant et de faire mes expériences pour moi même avant de poser une question. J'ai belle et bien trouver la traduction du document officielle sur le forum.... je voudrais bien le lire mais il se trouve que lorsque l'on clique dessus(http://www.eisti.fr/res/manual/mod/mod_rewrite.html) on arrive sur une page 404 donc pas de chance!!! Après j'ai concsulté le document Apache sur le rewriting... Beaucoup de chose mais difficle d'accès pour débutant afin d'aider à comprendre se que l'on fait... Il y aussi beaucoup de questions sur le forum sur la modification du rewriting mais le sujet manque souvent l'ensemble des détails pour bien comprendre les changement apporté au .htaccess ou une bonne proportion traite du phpBB... Afin, j'apprécie beaucoup ton aide!
 
Nouveau WRInaute
Et ton fichier .htaccess il est situé dans quel répertoire ? Ton serveur tourne sous Apache2 ?

Bon, je suis sur un server Apache/1.3.29 (Unix) et mon .htaccess est de le sous-répertoire search mais j'ai aussi un autre .htaccess qui gère l'ensemble de mes répertoires. Le .htaccess qui gère le tout fonctionne à merveille et donc je présume ça devrais être la même chose pour celui que j'essaie d'instaurer. Bon! Je t'envoie une copie de mon .htaccess qui gère le tout, il est à la racine des répertoires, j'ai pris un certain temps à le construire mais il fonctionne à merveille:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{REMOTE_ADDR} ^58\.84\.184\.68$ [OR]
RewriteCond %{REMOTE_ADDR} ^68\.184\.84\.58$ [OR]
RewriteCond %{REMOTE_ADDR} ^68\.12[45]\. [OR]
RewriteCond %{REMOTE_ADDR} ^64\.124\.85\.93$ [OR]
RewriteCond %{REMOTE_ADDR} ^64\.124\.85\.201$ [OR]
RewriteCond %{REMOTE_ADDR} ^64\.124\.85\.203$ [OR]
RewriteCond %{REMOTE_ADDR} ^64\.124\.85\.207$ [OR]
RewriteCond %{REMOTE_ADDR} ^64\.124\.85\.255$ [OR]
RewriteCond %{REMOTE_ADDR} ^64\.124\.85\.210$ [OR]
RewriteCond %{HTTP_USER_AGENT} BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} cpe.ga.charter.com [OR]
RewriteCond %{HTTP_USER_AGENT} DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} Exava.com [OR]
RewriteCond %{HTTP_USER_AGENT} Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [OR]
RewriteCond %{HTTP_USER_AGENT} Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} larbin [OR]
RewriteCond %{HTTP_USER_AGENT} LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} Siphon [OR]
RewriteCond %{HTTP_USER_AGENT} SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} Wget [OR]
RewriteCond %{HTTP_USER_AGENT} Widow [OR]
RewriteCond %{HTTP_USER_AGENT} Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} Zeus
RewriteRule ^.*$ - [F]

order allow,deny
deny from 68.184.84.58
deny from 68.184.84.58.
deny from 58.84.184.68
deny from 64.124.85.93
deny from 64.124.85.201
deny from 64.124.85.202
deny from 64.124.85.203
deny from 64.124.85.204
deny from 64.124.85.205
deny from 64.124.85.206
deny from 64.124.85.207
deny from 64.124.85.208
deny from 64.124.85.209
deny from 64.124.85.210
deny from 64.124.85.255
allow from all

<Files .htaccess>
order allow,deny
deny from all
</Files>
 
Nouveau WRInaute
Ça fait plus d'une semaine que j'essaie de changer mon .htaccess mais sans succès!! J'ai vraiment besoin de votre aide....Merci infinement! Bermy
 
Nouveau WRInaute
Existe-t'il un test pour vérifier le pourquoi que ça ne marche pas avec .htaccess? Peut-être, je pourrais opter pour une façon de changer mon extension (utiliser un script) sans utiliser .htaccess? Des idées?
 
WRInaute impliqué
Je serais toi je mettrai mes conditions et règles de réécritures dans le .htaccess principal. Dans ce cas il sera bon.
Pour voir les erreurs : voir les fichiers LOGS (error.log).
 
Nouveau WRInaute
J'ai suivi tes conseils (The Jedi) et tu as raison à 100%. J'ai même enlevé les autres lignes dans mon .htaccess ainsi j'ai aussi fait subir une cure d'amaigrissement à mon .htaccess en enlevent mes anti-leech's qui ralentissent mes pages et qui risquent d'empêcher certains visiteurs d'aller sur mon site(http://prettyworthless.com/tips.php?tip=leech#tip)"Super article en passant". Bon, maintenant, ça marche à moitié. J'ai accès au deux addresses exemple: http://www.tekclick.com/search/browse.php?cat=572 une fois changé donne http://www.tekclick.com/search/browse_572.php... Cependant, si je navigue dans mon directory les addresses ne changent pas toutes seules. Comment faire pour faire changement sans avoir à tout réécrire une à une les addresses? Je vous envoie mon .htaccess modifié pour que vous puissiez mieux m'aider:
RewriteEngine on
RewriteRule ^(.*)\/browse_([0-9]+)\.php$ /$1/browse.php?cat=$2 [L]

order allow,deny
deny from 68.184.84.58
deny from 68.184.84.58.
deny from 58.84.184.68
deny from 64.124.85.93
deny from 64.124.85.201
deny from 64.124.85.202
deny from 64.124.85.203
deny from 64.124.85.204
deny from 64.124.85.205
deny from 64.124.85.206
deny from 64.124.85.207
deny from 64.124.85.208
deny from 64.124.85.209
deny from 64.124.85.210
deny from 64.124.85.255
allow from all

<Files .htaccess>
order allow,deny
deny from all
</Files>

Merci pour l'aide The Jedi... J'attends vos conseils!
 
Nouveau WRInaute
Jedi, j'ai lu tes consiels sur un autres forums pour ajouter un script PHP avec la fonction RedirectPermanent dans mon .htaccess. Je voudrais savoir si d'utiliser ton script m'aiderais et si oui, pourrais-tu être explicite dans le comment faire. Où je devrais ajouter ton script? Sur tout mes pages! sur mon index!!! J'attends de tes nouvelles... Ah oui, j'oubliais! Je n'ai pas accès à mes error Log, je n'ai pas cette option chez mon hébergeur.

P.S. Je sais qu'on doit souvent poser les mêmes questions je m'en excuse!
 
Nouveau WRInaute
Et la quête continue..... Bon je viens de mettre la main sur un script qui je pourrais aider nombre d'entre vous qui chercher une solution pour rediriger votre page url.com/?page=namepage vers le nom que vous désiré... Voici le script en PHP:
<?
// PHP?dir is a simple PHP-script to make simple URL's
// Created by Misty
// http://members.lycos.nl/phpmisty/phpdir/
// http://php.mistysweblog.tk

/* You can add url's in the form "namepage" => "http://url.com/page.html"
with a comma between the different naam => url's (see example)
This will give the page url.com/thispage.php?page=namepage
It also works when you use other variables in the url as url.com/thispage.php?page=index&test=525 .
Then it adds the extra variable (test=525) also to the base url (http://url.com/test/page/
becomes http://url.com/test/page/?test=525) */

$url = array(
"index" => "http://yourdomain.org/mainpage.php",
"news" => "http://yourdomain.org/news.php?p=4",
"test" => "http://yourdomain.org/test/",
);

//Other options
$title="My Page"; //Enter the page title
$keywords="personal, webpage, html, CV"; //Enter the page keywords
$description="My personal webpage: come and see it!"; //Enter the site description

// Do not edit below
if (array_key_exists($page,$url)){}
else {$page="index";}
if ($page=="")
{$page="index";}
$templink="page=$page&";
$tempurl1=str_replace ($templink, "", "$QUERY_STRING");
$templink="&page=$page";
$tempurl2=str_replace ($templink, "", "$tempurl1");
if ($tempurl2=="page=$page")
{$tempurl2="";
$vraag="";}
else
{if ($tempurl2=="") {$vraag="";}
else{
$vraag="?";}
}
$newurl="$url[$page]$vraag$tempurl2";
?>

<HTML><HEAD>
<meta name="keywords" content="<? echo("$keywords"); ?>">
<meta name="description" content="<? echo("$description"); ?>">

<TITLE><? echo("$title"); ?></TITLE>
</HEAD>
<FRAMESET rows="100%,*" border="0" frameborder="0" framespacing="0" framecolor="#000000">
<FRAME src="<? echo("$newurl"); ?>" name="page" frameborder="0" framespacing="0" border="0">
<NOFRAMES>
<body bgcolor="#FFFFFF" >
<CENTER>
<BR>
<BR>
<A href="<? echo("$newurl"); ?>"><? echo("$title"); ?></A>
</CENTER>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>

Il va bien mais je doute qu'il y a un risque que les engines de recherches référencies en double la page ou site.... Quand pensez-vous? Peut-être que vous avez d'autres solutions à proposer!!!!
 
WRInaute impliqué
Heu honnêtement c'est pas top du tout ce script :/

dans le fichier à inclure, j'y décris des règles de redirection.

Mon ancienne URL était du type
-http://URL/?cat=bidule&action=truc&lib=machin (j'avais mis lib pour remplacer le paramètre 'id', problématique à l'époque).

Code:
<?php
require('./engine/lib/translation.php');
error_reporting(E_ALL ^ E_NOTICE);
$url = '';

switch( $get['cat'] )
        {
                #news (ou rien)
                case '':
                case 'news':
                        $url = 'news/';
                        if( isset($get['date']) )
                        {
                                $get['date'] = str_replace('-','_',$get['date']);
                                $date = explode('_',$get['date']);

                                $date[0] = intval($date[0]);
                                $date[1] = intval($date[1]);

                                #mois ?
                                if( count($date) == 2 )
                                        {
                                                $date[1] = str_pad($date[1],2,'0',STR_PAD_LEFT);
                                                $url .= 'mois/'.$date[0].$date[1].'.htm';
                                        }
                                #jour ?
                                elseif( count($date) == 3)
                                        {
                                                $date[1] = str_pad($date[1],2,'0',STR_PAD_LEFT);
                                                $date[2] = str_pad(intval($date[2]),2,'0',STR_PAD_LEFT);
                                                $url .= 'jour/'.$date[0].$date[1].$date[2].'.htm';
                                        }
                        }
                break;

                #newsletter
                case 'newsletter':
                        $url = 'membre/newsletter.htm';
                break;

                #dossiers
                case 'dossiers':
                        $url = 'dossiers/';
                        $get['lib'] = isset($get['lib']) ? $get['lib'] : '';
                        $get['lib'] = (!$get['lib'] && isset($get['id'])) ? $get['id'] : $get['lib'];
                        if( $get['lib'] )
                                {       $url .= $get['lib'].'.htm';     }
                break;

                #veda
                case 'veda':
                        $url = 'veda/';
                        $get['action'] = isset($get['action']) ? $get['action'] : '';

                        switch( $get['action'] )
                                {
                                        case 'informations':    $url .= 'divers/informations.htm';      break;
                                        case 'conseils':        $url = 'dossiers/veda.htm';     break;
                                        case 'telecharger':     $url .= 'divers/telecharger.htm';       break;
                                        case 'stats':   $url .= 'divers/stats.htm';     break;
                                        case 'subjeu':  $url = 'veda2/proposer/';       break;
                                        case '':
                                                #année
                                                if( isset($get['annee']) )
                                                        {       $url .= 'listes/annee_'.$get['annee'].'.htm';   }
                                                #éditeur
                                                elseif( isset($get['editeur']) )
                                                        {       $url .= 'listes/editeur_'.$get['editeur'].'.htm';       }
                                                #genre
                                                elseif( isset($get['genre']) )
                                                        {       $url .= 'listes/genre_'.$CONV['style_jeux'][ $get['genre'] ].'.htm';    }
                                                #joueurs
                                                elseif( isset($get['joueurs']) )
                                                        {       $url .= 'listes/joueurs_'.$get['joueurs'].'.htm';       }
                                                #test
                                                elseif( isset($get['test']) )
                                                        {       $url .= 'test/'.$get['test'].'.htm';    }
                                                #machine
                                                elseif( isset($get['machine']) )
                                                        {       $url .= 'support/'.$get['machine'].'.htm';      }
                                        break;
                                }
                break;

                #tutoriaux
                case 'tuto':
                        $url = 'tutoriaux/';
                        $get['lib'] = isset($get['lib']) ? $get['lib'] : '';
                        $get['lib'] = (!$get['lib'] && isset($get['id'])) ? $get['id'] : $get['lib'];
                        if( $get['lib'] )
                                {       $url .= $CONV['tutoriaux'][ $get['lib'] ].'.htm';       }
                break;

                #lexique
                case 'lexique':
                        $url = 'lexique/';
                        $get['lib'] = isset($get['mot']) ? $get['mot'] : '';
                        if( $get['lib'] )
                                {       $url .= $get['lib'].'.htm';     }
                break;

                #paduction radio
                case 'radio':
                        $url = 'infos/radio.htm';
                break;

                #équipe/contact
                case 'equipe':
                        $url = 'infos/contact/';
                break;

                #émulateurs
                case 'emulateurs':
                        $url = 'emulation/';
                        $get['lib'] = isset($get['lib']) ? $get['lib'] : '';
                        $get['lib'] = (!$get['lib'] && isset($get['id'])) ? $get['id'] : $get['lib'];
                        if( $get['lib'] )
                                {       $url .= 'emulateurs/'.$CONV['supports'][ $get['lib'] ].'.htm';  }
                break;

                #annuaire
                case 'annuaire':
                        $url = 'liens/';
                break;

                #roms
                case 'roms':
                        $url = 'roms/';
                        $get['action'] = isset($get['action']) ? $get['action'] : '';

                        switch( $get['action'] )
                                {
                                        case 'nouveaux':        $url .= 'stats/nouveautes.htm'; break;
                                        case '':
                                                #année
                                                if( isset($get['console']) )
                                                        {       $url .= 'support/'.$CONV['supports'][ $get['console'] ].'.htm'; }
                                        break;
                                }
                break;

                #chat
                case 'chat':
                        $url = 'infos/';
                break;

                #livre d'or
                case 'livredor':
                        $url = 'infos/livredor/';
                break;

                #concours
                case 'concours':
                case 'helpzesite':
                        $url = 'infos/fondation/';
                break;

                #historique
                case 'historique':
                        $url = 'infos/divers/historique.htm';
                break;
                #omnicade ? on le passe en dossier
                case 'omnicade':
                        $url = 'dossiers/omnicade.htm';
                break;

                #sinon ...
                default:
                        $url = $get['cat'] ? $get['cat'].'/' : NULL;
                break;
        }

//header("Status: 301 Moved Permanently");
header("HTTP/1.1 301 Moved Permanently");
header("Location: ".rtrim(URL_ROOT,'/')."/{$url}");
//echo("Location: ".rtrim(URL_ROOT,'/')."/{$url}");
die();
?>
 
Nouveau WRInaute
Bonjour à tous!

J'ai finalement réussi à régler mon problème. Je tiens spécialement à vous remercier pour votre aide. The Jedi, je te remercie pour les infos et je dois dire que par ce sujet j'ai acquis une bien meilleur compréhension sur le .htaccess. Ça fait du bien d'avoir enfin la solution. Encore un gros merci!! :D
 
Discussions similaires
Haut