Forum CMS Made Simple FR

Version complète : url rewriting
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.2
#~ Url du site : www.nextrides.yannlamy.com
#~ Hébergeur / Soft : hébergeur pas cher
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.10.2
#~ Installed Modules:
#~ CMSMailer: 2.0.2
#~ CMSPrinting: 1.0
#~ FileManager: 1.2.0
#~ MenuManager: 1.7.7
#~ MicroTiny: 1.1.1
#~ ModuleManager: 1.5.3
#~ News: 2.12.3
#~ Search: 1.7
#~ ThemeManager: 1.1.4
#~ CGExtensions: 1.27.1
#~ FrontEndUsers: 1.16.4
#~ SelfRegistration: 1.6.13
#~ CustomContent: 1.7.3
#~ CGSmartImage: 1.6.1
#~ CGSimpleSmarty: 1.4.10
#~ JQueryTools: 1.0.10
#~ Products: 2.15.1
#~ CGContentUtils: 1.2.1
#~ CGGoogleMaps: 2.1.4
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 6000000
#~ default_upload_permission: 664
#~ url_rewriting: mod_rewrite
#~ page_extension: .html
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.8
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 64M
#~ max_execution_time: 90
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 10M
#~ upload_max_filesize: 6M
#~ session_save_path: /tmp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: cgi-fcgi
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.56
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

Aujourd'hui un petit problème d'url rewriting se pose à moi.
J'utilise le mod_rewrite qui fonctionne trés bien, mais j'aimerais l'étendre à de nouvelles urls crées à partir de la balise {cms_selflink}.

En effet, je passe des paramètres en GET à mes pages rewritées, ce qui me donne des urls de ce style:

www.nomdedomaine/aquatique.html?region=Rhône-Alpes
www.nomdedomaine/terrestre.html?region=Aquitaine
www.nomdedomaine/annonces.html?region=Languedoc-Roussillon
...

je souhaiterai donc obtenir des urls, plutôt de cette forme:

www.nomdedomaine/Rhône-Alpes/aquatique.html
www.nomdedomaine/Aquitaine/terrestre.html
www.nomdedomaine/Languedoc-Roussillon/annonces.html

Celà permettrait une meilleur lisibilité

Est-ce possible aisément et comme s'y prendre avec le htaccess pour réussir ce tout de force, car j'ai un peu de mal avec la procédure?

Merci pour vos lumières

Merci de vos lumières
{cms_selflink} va te créer en amont le lien, rien à voir donc avec le .htaccess

et je ne penses pas que le .htaccess soit fait pour réaliser ces double redirections

www.nomdedomaine/aquatique.html?region=Rhône-Alpes ->
www.nomdedomaine/Rhône-Alpes/aquatique.html ->
www.nomdedomaine/indexp.php?page=aquatique&region=Rhône-Alpes

tout en conservant le second format :/

le plus simple serait que tu trouve le moyen de générer de suite /Rhône-Alpes/aquatique.html à partir de {cms_selflink} ou de toutes autres balises de ton cru si besoin
Je suis 100% d'accord avec toi, le mieux serait de générer l'url finale dés le début.
Les liens sont généres à partir d'une carte intéractive que j'ai crée de cette façon:

Code :
[== PHP ==]
echo '<map name="minicartefrance" id="minicartefrance">';

foreach ($region as $val=>$coo) {

      $val = htmlentities($val, ENT_QUOTES);

      $smarty = &cmsms()->GetSmarty();
      $smarty_data = "{cms_selflink href=$current_id text='$val' urlparam='?region=$val'}";
      $smarty->_compile_source('temporary template', $smarty_data, $_compiled );
      @ob_start();
      $smarty->_eval('?>' . $_compiled);
      $_content = @ob_get_contents();
      @ob_end_clean();


      echo '<area alt="'.html_entity_decode($val).'" href="'.html_entity_decode($_content).'" coords="'.$coo.'" shape="poly">';

}

echo '</map>';

code qui se trouve dans une UDT où $val est le nom de la région et $coo, les coordonnées du polygone formant chaque aréa.

Donc faudrait faire sauter cette façon de faire en virant le systeme self_link et en le remplaçant directement par l'url qui doit se retrouver de la forme www.nomdedomaine/Rhône-Alpes/aquatique.html.

C'est là qu'est toute la complexité du truc pour moi car il faut qu'à la page actuelle ($current_id), j'ajoute le paramètre région et que le tout se retrouve formaté comme l'url ci-dessus...