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 :
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/
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>
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.
Partager