C'est plus ou moins une question à propos de la redirection [301] sur Apache, mais d'autres règles requises pour le CMS Joomla.Rediriger les anciennes URLs après la relance avec Joomla sur Apache 2.4
Nous avons relancé un site Web avec Joomla 3. L'ancien était un autre CMS. Maintenant, nous aimerions rediriger [301] l'ancienne URL vers le nouvel emplacement.
Le problème semble être que cela ne fonctionne pas. Je voudrais avoir une solution qui pourrait s'adapter à tous nos cas (près de 300).
Voici quelques exemples que nous aimons à rediriger (ancien => nouveau):
/index.php?CID=1 =>/
/index.php?CID=2&Kat=1$ =>/
/index.php?CID=3&Kat=2&PID=100 => /new/path
/old/path/file.extention => /new/file/path
/old/page.html => /new/page
/show_image.php?image=123456.jpg&text=Very%20Long%TEXT => /new/path/location
/show_image.php?image=654321.jpg&text=Very%20Long%TEXT => /other/path/location
I Tried déjà quelques RewriteRules comme:
RewriteRule ^/index\.php\?CID=1$ http://%{HTTP_HOST}/ [R=301,L]
OU
RedirectMatch 301 ^/index\.php\?CID=1$/
Pour certaines URLs la version RedirectMatch fonctionne mais pas pour la plupart d'entre eux, en particulier pas toutes les URL indiquant avec /index.php, je suppose e parce que c'est le point d'entrée pour Joomla.
Existe-t-il un moyen de rediriger des URL concrètes, y compris une fois que le fichier commence par /index.php avant que Joomla RewriteRule ne devienne actif? RewriteEngine est activé et fonctionne avec le htaccess par défaut fourni avec Joomla: les URL SEF et la réécriture d'URL sont activées.
S'il vous plaît donnez-moi un indice dans la bonne direction. Thx
Voici la configuration de la valeur par défaut Joomla si vous ne savez pas: En attendant, je me trouve la solution
<IfModule autoindex>
IndexIgnore *
</IfModule>
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteBase/
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]