2011-10-24 3 views
4

J'essaie d'envelopper la tête autour de réécrire certaines URLs en interne dans Joomla! 1.7 avec SEF fonctionnalités activées, mais ne peut pas sembler figurer dehors:Réécrire les URLs personnalisées avec Joomla SEF

L'URL SEF suivante existe (option de menu):

website.com/local/amsterdam

Ce que je comme est la suivante:

http://website.com/local/amsterdam/trends (non existant) pour rendre http://website.com/local/amsterdam?show=trends tout en affichant la première URL.

Travailler avec .htaccess les travaux suivants (mais ne montre pas URL SEF):

RewriteRule ^local/amsterdam/trends$ index.php?option=com_content&view=article&id=14&Itemid=176&show=trends [L] 

Mais cela ne:

RewriteRule ^local/amsterdam/trends$ local/amsterdam?show=trends [L] 

J'espère trouver une solution sans avoir à utiliser un identifiant pour rendre dynamiquement la bonne page pour toutes les villes. J'apprécierais toutes les pensées sur le faire dans. Htaccess ainsi que des solutions différentes pour y parvenir! Merci d'avance.

Répondre

0

Bien que je cherchais initialement une solution de mod-réécriture, j'ai trouvé un moyen d'atteindre la même chose en modifiant le (noyau) Joomla! routeur.

Sur la ligne 47 du includes/router.php après:

$path = substr_replace($path, '', 0, strlen(JURI::base(true))); 

I ajouté ce qui suit:

$subpages = array("trends","other"); //Add URL segments you want to reroute 
foreach ($subpages as $subpage):    
    if (strstr($path, "/".$subpage)) : 
      $path = str_replace("/".$subpage, "", $path); 
      $vars['show'] = $subpage; 
    endif; 
endforeach; 

maintenant lors du chargement http://www.website.com/local/amsterdam/trends, cette URL est affichée alors que la page http://www.website.com/local/amsterdam est effectivement chargée avec le paramètre? show = trends.

Pour moi, c'est une solution plus flexible que l'utilisation de mod-rewrite même si un fichier core est modifié. Vous pouvez utiliser certaines instructions conditionnelles pour exécuter ce code uniquement dans certaines conditions. J'espère que cela aide.