Bonjour,

Je suis en train de préparer une migration donc travaille actuellement sur un dossier de test sur le serveur.
Pour ne pas perdre tout mon référencement, je veux que le htaccess redirige les anciennes url du forum vers les nouvelles.
Le serveur est organisé de la manière suivante :

/ : racine redirigée vers le site
/site : dossier contenant le site, accessible depuis http://ww.domaine.com
/test : mon dossier de test
/test/forumtest : le dossier où je travaille actuellement

J'ai pour le moment le htaccess suivant dans la le dossier /test/forum :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
########################
# MOD Rewrite By Maxxx #
########################
<IfModule mod_rewrite.c>
Options -MultiViews
Options +FollowSymlinks
 
# Enable mod_rewrite
RewriteEngine On
 
# This is usually not required
# but could be if using forum & topic virtual-folders
RewriteBase /forumtest/
 
#####################
# Mod Rewrite Rules
 
# Pas de réécriture si le fichier ou le dossier existe
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
 
##########
# Compatibilité anciennes url
# Vue des topics
RewriteRule ^(.*)[-_,]t([0-9]*)[-_,]s([0-9]*)\.html(.*)$ /forumtest/index.php?showtopic=$2&st=$3 [QSA,L,NC,R=301]
RewriteRule ^(.*)[-_,]t([0-9]*)\.html(.*)$ /forumtest/index.php?showtopic=$2$3 [QSA,L,NC,R=301]
RewriteRule ^t([0-9]*)\.html(.*)$ /forumtest/index.php?showtopic=$1$2 [QSA,L,NC,R=301]
# Vue des forums
RewriteRule ^(.*)[-_,]f([0-9]*)\.html(.*)$ /forumtest/index.php?showforum=$2$3 [QSA,L,NC,R=301]
RewriteRule ^f([0-9]*)\.html(.*)$ /forumtest/index.php?showforum=$1$2 [QSA,L,NC,R=301]
# Vue des profils
RewriteRule ^(.*)[-_,]m([0-9]*)\.html(.*)$ /forumtest/index.php?showuser=$2$3 [QSA,L,NC,R=301]
RewriteRule ^m([0-9]*)\.html(.*)$ /forumtest/index.php?showuser=$1$2 [QSA,L,NC,R=301]
 
#################################
# Règles forum actuel
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpeg|jpg|gif|png)$ /forumtest/public/404.php [NC,L]
 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /forumtest/index.php [L]
 
</IfModule>
le dossier /test est accessible par le sous domaine http://test.domaine.com donc j'accède à mon forum de test par http://test.domaine.com/forumtest/
Quand je navigue sur le forum de test avec les url qu'il a réécrit tout se passe bien, par contre quand je veux utiliser les anciennes url pour vérifier la compatibilité je ne suis pas redirigé sur le sous domaine.
Le nouveau forum a des url pour le sujets du type http://test.domaine.com/forumtest/topic/1-welcome/ (le forum intègre une fonction de compatibilité, les url du type http://test.domaine.com/forumtest/index.php?showtopic=1 sont redirigées vers les nouvelles url réécrites)
l'ancien forum a des urls du type http://forum.domaine.com/welcome-t1.html
J'ai donc écrit le htaccess pour rediriger les url de l'ancien forum vers le nouveau.

Le problème est que lorsque j'essaye l'url http://test.domaine.com/forumtest/welcome-t1.html je ne suis pas redirigé vers http://test.domaine.com/forumtest/index.php?showtopic=1 mais vers http://www.domaine.com/forumtest/index.php?showtopic=1
Du coup le script du site me renvoie une erreur 404

Je ne trouve pas où est l'erreur dans mon htaccess

Merci d'avance pour votre aide.