URL rewriting sur forum

WRInaute discret
Bonsoir,

Comme madri me la conseiller je vien voir si quelqu'un peut pas venir m'aidé pour mes urls réecrite.

Je suis sous un forum punBB et j'ai installé leur module pour l'url rewr et ca a été la catastrophe ca donnait des urls super compliqué donc j'ai du le combiné avec deux autres mods enfin pour finir voilà ou j'en suis :

Je me trouve avec des urls de ce format, (exemple pour un topic)
-http://www.rsca-zone.be/t165-Liverpool-Standard.html
Comme j'ai lu sur ce forum il est mieux d'avoir les mots clés les plus importants vers l'avant. Donc je pense que l'idéal serait d'avoir,
-http://www.rsca-zone.be/Liverpool-Standard-t165.html

Donc voilà ma question est de savoir quels modifications effectués pour obtenir ce résultat ?

Le contenu de mon .htaccess :
Code:
RewriteEngine on
RewriteRule ^f([0-9]+)(.*).html$ viewforum.php?id=$1 [L]
RewriteRule ^t([0-9]+)(.*).html$ viewtopic.php?id=$1 [L]
RewriteRule ^p([0-9]+)(.*).html$ viewtopic.php?pid=$1 [L]
RewriteRule ^(.*).rss$ extern.php?action=$1&type=rss [L]
RewriteRule ^blabla.html$ index.php [L]

La ligne de la page php qui affiche le lien :
Code:
$subject = '<a href="'.makeurl("t", $cur_topic['id'], $cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].'&nbsp;'.pun_htmlspecialchars($cur_topic['poster']).'</span>';

Merci d'avance si quelqu'un peut m'aider, je pense qu'il faut faire une modification dans les deux fichiers.
 
WRInaute passionné
pour le .htaccess il faut mettre par exemple :
Code:
RewriteRule -t([0-9]+)\.html$ viewtopic.php?id=$1 [L]
pour le lien il faut surement modifier la fonction makeurl
 
WRInaute discret
Salut lamogere merci de coup de main.
Voici ma fonction makeurl
Code:
<?php
function makeurl($type, $id, $name) {
	# Type must be "f" for forum, "t" for topic or "p" for post
	# ID is the id of the content wanted
	# Name is the title of the category or topic
	

	$words = explode(" ", $name);
	$url;
	foreach ($words as $word) {
		if(strlen($word) > 3)
			$url .= '-' . $word;
	}
	$url = strtr($url,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ/','AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-');
	$url = urlencode($type . $id . $url . ".html");

	return $url;
}
?>
 
WRInaute passionné
ce code va modifier les url pour tous les "type"
sinon il faut tester $type
Code:
<?php
function makeurl($type, $id, $name) {
	# Type must be "f" for forum, "t" for topic or "p" for post
	# ID is the id of the content wanted
	# Name is the title of the category or topic
	

	$words = explode(" ", $name);
	$url;
	foreach ($words as $word) {
		if(strlen($word) > 3) {
			$url .= $word . '-';
	}
	$url = strtr($url,'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ/','AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-');
	$url = urlencode($url . $type . $id . ".html");

	return $url;
}
?>
 
WRInaute discret
Ca marche enfin, je te remercie beaucoup.
Mais bizarrement depuis cette modification j'ai tout de même des erreurs en haut de page :
Warning: Cannot modify header information - headers already sent by (output started at /home.3/rscazone/www/include/rewrite.php:19) in /home.3/rscazone/www/header.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at /home.3/rscazone/www/include/rewrite.php:19) in /home.3/rscazone/www/header.php on line 32

Warning: Cannot modify header information - headers already sent by (output started at /home.3/rscazone/www/include/rewrite.php:19) in /home.3/rscazone/www/header.php on line 33

Warning: Cannot modify header information - headers already sent by (output started at /home.3/rscazone/www/include/rewrite.php:19) in /home.3/rscazone/www/header.php on line 34

Je les ai cacher avec error_reporting(0); en attendant de trouvé le prob.
 
WRInaute passionné
Il n'est pas possible de modifier l'entete quand des données ont déjà été envoyés au navigateur. il doit y avoir un appel de la fonction header() mal placé. C'est peut-être tout simplement un retour à la ligne en fin de fichier php qui génère cela.
 
Discussions similaires
Haut