2010-08-08 19 views
0

Je veux afficher tous mes tags sur une page web par exemple, www.example.com/tags/ puis quand un clique sur l'un des tags que je veux afficher tous les messages liés à cette balise sur une autre page Web par exemple, www.example.com/tags/clicked-tag/ comment pourrais-je être en mesure de le faire, car ce ne serait vraiment pas une bonne idée de créer une page Web pour chaque tag?Comment ressembleraient mes exemples de pages Web avant la réécriture du mod lors de l'utilisation de PHP

Je vais créer une page index.php pour le dossier de balises www.example.com/tags/.

Mais comment serais-je en mesure d'afficher les messages liés à ce tag sur une autre page, par exemple, www.example.com/tags/clicked-tag/?

Répondre

1

Mod_rewrite pour générer variable get dans « belle » forme

Vous devez ajouter champ mysql appelé « tag » ou quelque chose

+0

mais où toutes les balises seraient affichées? – snag

+0

Vous devrez vérifier si la variable tag (f.e. isset ($ _ GET ['tag'])) existe, sinon afficher tout. – Misiur

+0

donc je voudrais afficher tous les tags sur la page Web avec le poste de tags cliqués et il donnera toujours la mise en page de la page Web que je recherche? – snag

1

Une possibilité est d'utiliser une règle de réécriture. Créez un fichier PHP nommé "details.php" dans le dossier des balises.

Puis, en httpd.conf:

RewriteRule /tags/([^/]+)/?$ /tags/details.php?tag=$1 [B,L] 

ou, si vous devez, dans un fichier .htaccess dans/tags:

RewriteCond $1 !=details.php 
RewriteRule ([^/]+)/?$ details.php?tag=$1 [B] 

Une autre possibilité serait d'activer l'option et MultiViews servir toutes les demandes à /tags/* à partir d'un fichier nommé tags.php dans la racine (en utilisant les informations de chemin d'accès pour déterminer ce qu'il faut montrer).

+0

@snag J'ai supposé que vous utilisiez Apache. Si vous êtes, il a [une extension] (http: // httpd.apache.org/docs/2.2/mod/mod_rewrite.html) généralement disponible qui vous permet de réécrire des URL. – Artefacto

+0

Je me demandais juste à quoi ressembleraient mes pages avant de réécrire ce que je voulais dire. – snag

+0

@snag Avant de réécrire, ils auront l'apparence que vous voulez. Une fois qu'une requête à ces URL arrive, le serveur les réécrit en interne à '/ tag/details.php' ou quoi que ce soit (le client ne les voit pas). – Artefacto

1

Est-ce qu'il me manque quelque chose ici? Il semble que vous souhaitiez afficher tous les articles pour un tag donné <my_tag> sur la page www.example.com/tags/clicked-tag.php?

Alors, ne peuvent pas vos balises lien vers www.example.com/tags/clicked-tag?tag=<tag_name>, où <tag_name> est différent pour chaque balise, évidemment, puis www.example.com/tags/clicked-tag.php simplement regarder une $_GET["tag"] variable?

Cela semble la façon de le faire en PHP, mais comme d'autres donnent des réponses de réécriture, je crains d'avoir mal compris la question. Si oui, peut-être pourriez-vous clarifier?


i want all the tags to have their own unique file name like www.example.com/tags/tag1 www.example.com/tags/tag2 www.example.com/tags/tag3 and so on - merci pour la clarification.

Que diriez-vous ... mmmm ... tous les liens sur la première page mènent à une page intermédiaire que l'utilisateur ne verra jamais ... www.example.com/tags/clicked-tag.php par exemple, et qui fait quelque chose comme

if file www.example.com/tags/<tag> not exists then crete it 
    header("Location: www.example.com/tags/<tag>"); 

et chaque page comprend un fichier commun avec une fonction qui prend comme paramètre et construit la page de sortie ...

Cela le ferait, n'est-ce pas?