# Fichier .htaccess ...
# Gardez toutes vos données
# sans les modifier en
# début de ce fichier
# Mod pour traiter le Rewriting
ErrorDocument 404 /modrwurl.php
<?php
########################
# MODRWURL - version 1.0 - 29 mars 2009
# HasturSoft - http://hastursoft.free.fr/
########################
# Principe: Utilisation de l'Erreur 404
# Récupération d'un URL Exploitable
####################
$taburl = pathinfo($_SERVER["REQUEST_URI"]);
$fic = $taburl["basename"];
$dir = $taburl["dirname"];
$url = $dir.'/'.$fic;
$url = substr(str_replace('//','/',$url),1); // enlève le 1er / et remplace des doubles // par /
# HTTACCESS => PHP
############
# FORUMS PAGES
###############
# FORUM INDEX REWRITERULE WOULD STAND HERE IF USED. "forum" REQUIRES TO BE SET AS FORUM INDEX
# RewriteRule ^forum\.html$ /index.php [QSA,L,NC]
//if (eregi('^forum\.html(.*)?$',$url, $regs)) {
// header("HTTP/1.0 200 OK");
// header('Location: /index.php'.$regs[1]);
// exit;
//}
# FORUM
// RewriteRule ^[a-z0-9_-]*-f([0-9]+)(-([0-9]+))?\.html$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]
//if (eregi('^[a-z0-9_-]*-f([0-9]+)(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
// header("HTTP/1.0 200 OK");
// header('Location: /viewforum.php?f='.$regs[1].'&start='.$regs[3].$regs[4]);
// exit;
//}
# TOPIC WITH VIRTUAL FOLDER
//RewriteRule ^[a-z0-9_-]*-f([0-9]+)/[a-z0-9_-]*-t([0-9]+)(-([0-9]+))?\.html$ /viewtopic.php?f=$1&t=$2&start=$4 [QSA,L,NC]
if (eregi('^[a-z0-9_-]*-f([0-9]+)/[a-z0-9_-]*-t([0-9]+)(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /viewtopic.php?f='.$regs[1].'&t='.$regs[2].'&start='.$regs[4].$regs[5]);
exit;
}
# GLOBAL ANNOUNCES WITH VIRTUAL FOLDER
//RewriteRule ^annonces/[a-z0-9_-]*-t([0-9]+)(-([0-9]+))?\.html$ /viewtopic.php?t=$1&start=$3 [QSA,L,NC]
if (eregi('^annonces/[a-z0-9_-]*-t([0-9]+)(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /viewtopic.php?t='.$regs[1].'&start='.$regs[3].$regs[4]);
exit;
}
# TOPIC WITHOUT FORUM ID & DELIM
//RewriteRule ^([a-z0-9_-]*)/?[a-z0-9_-]*-t([0-9]+)(-([0-9]+))?\.html$ /viewtopic.php?forum_uri=$1&t=$2&start=$4 [QSA,L,NC]
if (eregi('^([a-z0-9_-]*)/?[a-z0-9_-]*-t([0-9]+)(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /viewtopic.php?forum_uri='.$regs[1].'&t='.$regs[2].'&start='.$regs[4].$regs[5]);
exit;
}
# PROFILES SIMPLE
//RewriteRule ^membre([0-9]+)\.html$ /memberlist.php?mode=viewprofile&u=$1 [QSA,L,NC]
if (eregi('^membre([0-9]+)\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /memberlist.php?mode=viewprofile&u='.$regs[1].$regs[2]);
exit;
}
# USER MESSAGES SIMPLE
//RewriteRule ^membre([0-9]+)-(topics|posts)(-([0-9]+))?\.html$ /search.php?author_id=$1&sr=$2&start=$4 [QSA,L,NC]
if (eregi('^membre([0-9]+)-(topics|posts)(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /search.php?author_id='.$regs[1].'&sr='.$regs[2].'&start='.$regs[4].$regs[5]);
exit;
}
# GROUPS SIMPLE
//RewriteRule ^groupe([0-9]+)(-([0-9]+))?\.html$ /memberlist.php?mode=group&g=$1&start=$3 [QSA,L,NC]
if (eregi('^groupe([0-9]+)(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /memberlist.php?mode=group&g='.$regs[1].'&start='.$regs[3].$regs[4]);
exit;
}
# POST
//RewriteRule ^post([0-9]+)\.html$ /viewtopic.php?p=$1 [QSA,L,NC]
if (eregi('^post([0-9]+)\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /viewtopic.php?p='.$regs[1].$regs[2]);
exit;
}
# ACTIVE TOPICS
//RewriteRule ^sujets-actifs(-([0-9]+))?\.html$ /search.php?search_id=active_topics&start=$2&sr=topics [QSA,L,NC]
if (eregi('^sujets-actifs(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /search.php?search_id=active_topics&start='.$regs[2].'&sr=topics'.$regs[3]);
exit;
}
# UNANSWERED TOPICS
//RewriteRule ^sans-reponses(-([0-9]+))?\.html$ /search.php?search_id=unanswered&start=$2&sr=topics [QSA,L,NC]
if (eregi('^sans-reponses(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /search.php?search_id=unanswered&start='.$regs[2].'&sr=topics'.$regs[3]);
exit;
}
# NEW POSTS
//RewriteRule ^nouveaux-messages(-([0-9]+))?\.html$ /search.php?search_id=newposts&start=$2&sr=topics [QSA,L,NC]
if (eregi('^nouveaux-messages(-([0-9]+))?\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /search.php?search_id=newposts&start='.$regs[2].'&sr=topics'.$regs[3]);
exit;
}
# THE TEAM
//RewriteRule ^equipe\.html$ /memberlist.php?mode=leaders [QSA,L,NC]
if (eregi('^equipe\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /memberlist.php?mode=leaders'.$regs[1]);
exit;
}
# HERE IS A GOOD PLACE TO ADD OTHER PHPBB RELATED REWRITERULES
#####################################################
# GYM Sitemaps & RSS
# Global channels
//RewriteRule ^rss(/(news)+)?(/(digest)+)?(/(short|long)+)?/?$ /gymrss.php?channels&$2&$4&$6 [QSA,L,NC]
if (eregi('^rss(/(news)+)?(/(digest)+)?(/(short|long)+)?/?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /gymrss.php?channels&'.$regs[2].'&'.$regs[4].'&'.$regs[6]);
exit;
}
# HTML Global news & maps
//RewriteRule ^(news|maps)/?(page([0-9]+)\.html)?$ /map.php?$1&start=$3 [QSA,L,NC]
if (eregi('^(news|maps)/?(page([0-9]+)\.html)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /map.php?'.$regs[1].'&start='.$regs[3]);
exit;
}
# END GYM Sitemaps & RSS
#####################################################
# FORUM WITHOUT ID & DELIM
# THESE FOUR LINES MUST BE LOCATED AT THE END OF YOUR HTACCESS TO WORK PROPERLY
//RewriteCond %{REQUEST_FILENAME} !-f
// Ne fait rien pour traduire cette RewriteCond, puique le fichier est forcément inexistant : Erreur 404
//RewriteRule ^([a-z0-9_-]+)(-([0-9]+))\.html$ /viewforum.php?forum_uri=$1&start=$3 [QSA,L,NC]
if (eregi('^([a-z0-9_-]+)(-([0-9]+))\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /viewforum.php?forum_uri='.$regs[1].'&start='.$regs[3].$regs[4]);
exit;
}
//RewriteCond %{REQUEST_FILENAME} !-f
// Ne fait rien pour traduire cette RewriteCond, puique le fichier est forcément inexistant : Erreur 404
//RewriteRule ^([a-z0-9_-]+)\.html$ /viewforum.php?forum_uri=$1 [QSA,L,NC]
if (eregi('^([a-z0-9_-]+)\.html(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /viewforum.php?forum_uri='.$regs[1].$regs[2]);
exit;
}
# END PHPBB PAGES
#####################################################
#####################################################
# GYM Sitemaps & RSS
# HTML Module additional modes
//RewriteRule ^(news|maps)/([a-z0-9_-]+)(/([a-z0-9_-]+))?/?(page([0-9]+)\.html)?$ /map.php?$2=$4&$1&start=$6 [QSA,L,NC]
if (eregi('^(news|maps)/([a-z0-9_-]+)(/([a-z0-9_-]+))?/?(page([0-9]+)\.html)?(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /map.php?'.$regs[2].'='.$regs[4].'&'.$regs[1].'&start='.$regs[6].$regs[7]);
exit;
}
# Main feeds & channels
//RewriteRule ^rss(/(news)+)?(/(digest)+)?(/(short|long)+)?(/([a-z0-9_-]+))?/([a-z0-9_]+)\.xml(\.gz)?$ /gymrss.php?$9=$8&$2&$4&$6&gzip=$10 [QSA,L,NC]
if (eregi('^rss(/(news)+)?(/(digest)+)?(/(short|long)+)?(/([a-z0-9_-]+))?/([a-z0-9_]+)\.xml(\.gz)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /gymrss.php?'.$regs[9].'='.$regs[8].'&'.$regs[2].'&'.$regs[4].'&'.$regs[6].'&gzip='.$regs[10]);
exit;
}
# Module feeds
//RewriteRule ^[a-z0-9_-]*-[a-z]+([0-9]+)(/(news)+)?(/(digest)+)?(/(short|long)+)?/([a-z0-9_]+)\.xml(\.gz)?$ /gymrss.php?$8=$1&$3&$5&$7&gzip=$9 [QSA,L,NC]
if (eregi('^[a-z0-9_-]*-[a-z]+([0-9]+)(/(news)+)?(/(digest)+)?(/(short|long)+)?/([a-z0-9_]+)\.xml(\.gz)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /gymrss.php?'.$regs[8].'='.$regs[1].'&'.$regs[3].'&'.$regs[5].'&'.$regs[7].'&gzip='.$regs[9]);
exit;
}
# Module feeds without ids
//RewriteRule ^([a-z0-9_-]+)(/(news)+)?(/(digest)+)?(/(short|long)+)?/([a-z0-9_]+)\.xml(\.gz)?$ /gymrss.php?nametoid=$1&$3&$5&$7&modulename=$8&gzip=$9 [QSA,L,NC]
if (eregi('^([a-z0-9_-]+)(/(news)+)?(/(digest)+)?(/(short|long)+)?/([a-z0-9_]+)\.xml(\.gz)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /gymrss.php?nametoid='.$regs[1].'&'.$regs[3].'&'.$regs[5].'&'.$regs[7].'&modulename='.$regs[8].'&gzip='.$regs[9]);
exit;
}
# Google SitemapIndex
//RewriteRule ^sitemapindex\.xml(\.gz)?$ /sitemap.php?gzip=$1 [QSA,L,NC]
if (eregi('^sitemapindex\.xml(\.gz)?(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /sitemap.php?gzip='.$regs[1].$regs[2]);
exit;
}
# Module cat sitemaps
//RewriteRule ^[a-z0-9_-]+-([a-z]+)([0-9]+)\.xml(\.gz)?$ /sitemap.php?module_sep=$1&module_sub=$2&gzip=$3 [QSA,L,NC]
if (eregi('^[a-z0-9_-]+-([a-z]+)([0-9]+)\.xml(\.gz)?(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /sitemap.php?module_sep='.$regs[1].'&module_sub='.$regs[2].'&gzip='.$regs[3].$regs[4]);
exit;
}
# Module sitemaps
//RewriteRule ^([a-z0-9_]+)-([a-z0-9_-]+)\.xml(\.gz)?$ /sitemap.php?$1=$2&gzip=$3 [QSA,L,NC]
if (eregi('^([a-z0-9_]+)-([a-z0-9_-]+)\.xml(\.gz)?(.*)?$',$url, $regs)) {
header("HTTP/1.0 200 OK");
header('Location: /sitemap.php?'.$regs[1].'='.$regs[2].'&gzip='.$regs[3].$regs[4]);
exit;
}
# END GYM Sitemaps & RSS
#####################################################
# TRAITEMENT IMPOSSIBLE OPTION 1(Renvoi d'une Erreur HTTP 301)
#################
//header("Status: 301 Moved Permanently");
//header("Location: /"); // à la racine
# TRAITEMENT IMPOSSIBLE OPTION 2 (ou dans mon cas, renvoi sur la page de mon choix...)
#################
header("HTTP/1.0 200 OK");
header('Location: /viewforum.php?forum_uri=questions'); // ou ailleurs
exit;
?>
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité