Joomla 1.5 et rewriting

WRInaute discret
Bonsoir,

Je suis sous joomla 1.5 qui permet de faire du rewriting avec un .htaccess

Par défaut, joomla met des liens type :

/section.html
/section/categorie.html
/section/categorie/id-article.html

Par contre, j'aimerais changer cela en :

/section-id.html
/categorie-id.html
/article-id.html

histoire de ne pas faire des redirection 302 à chaque fois que je désire changer de catégorie à un article

voici le .htaccess de joomla :
Code:
##
# @version $Id: htaccess.txt 10492 2008-07-02 06:38:28Z ircmaxell $
# @package Joomla
# @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


#####################################################
#  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################

##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

# RewriteBase /


########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section
 
WRInaute passionné
non, ne te prend pas la tête, utilise sh404sef.
Tu peux fortement paramétrer la gueule de tes URLs.
En plus, ça évite les duplicate content ... :)
 
Nouveau WRInaute
Moi j'ai fait mes modifications sans outil car je voulais garder la compatibilité avec mes anciennes url.

Si tu veux faire des modifications, c est dans le fichier router.php dans la partie if($app->getCfg('sef_rewrite'))

Par exemple si tu avais : component/content/category/83.html tu peux modifier en the-news/83-musique.html.
Voici un exemple de code :
$route = str_replace('component/content/category/83.html', 'the-news/83-musique.html', $route);

Il y a sans doute des choses à améliorer mais c est le seul moyen de garder ton ancien référencement ...
 
WRInaute discret
Merci pour vos réponses.

J'ai fait également des modifications directes dans le code du composant joomla que j'utilise. Ca marche assez bien maintenant.

a+
 
Nouveau WRInaute
Merci Loran750 pour ta réponse.
Mais je pense que Gamewinner a fait comme moi et a modifié directement le router.php.
D'ou ma question si il a réussi à + améliorer l'url en diminuant celle ci :)
 
WRInaute discret
Je suis désolé mais je ne souviens plus exactement.

Je sais juste que je suis allé dans un fichier .php et j'ai fait une modif. Le but de cette modif était de diriger un lien placé sur un menu vers une page à la racine du site.

ex : Menu : jeux -> jeux sur pc -> wow pointe sur monsite/wow.html et non pas sur monsite/jeux/jeux-sur-pc/wow.html

Désolé de ne pas t'aider plus
 
WRInaute passionné
Les mecs, pourquoi se prendre la tête alors qu'il y a un composant tout prêt , et que si vous voulez vraiment des URLs personnalisées, et bien c'est possible ?
En plus ces composants gèrent le DC, éventuellement les H1, H2, les méta tags, ...

allons, concentrons nous sur l'essentiel, le site internet, son contenu et le business. Laissons la technique à la technique.

Lolo, qui vote en faveur de l'amour du code surtout quand il est tout cuit.
 
Discussions similaires
Haut