2009-07-06 8 views
0

Je souhaite créer des règles de réécriture d'URL pour l'URL suivante dans htaccess.Apache htaccess réécrit les règles d'URL?

http://example.com/vedios/category/fun/ -> http://example.com/vedios/category.php?cat=fun 

http://example.com/vedios/category/fun/?show=popular -> http://example.com/vedios/category.php?cat=comedy&show=popular 

http://example.com/vedios/category/fun/?show=popular&page=2 -> http://example.com/vedios/category.php?cat=comedy&show=popular&page=2 

http://example.com/vedios/category/fun/comedy/ -> http://example.com/vedios/category.php?cat=comedy 

http://example.com/vedios/category/fun/comedy/?show=popular -> http://example.com/vedios/category.php?cat=comedy&show=popular 

http://example.com/vedios/category/fun/comedy/?show=popular&page=3 -> http://example.com/vedios/category.php?cat=comedy&show=popular&page=3 

J'ai essayé RewriteRule category/([^.]+)/?([^.]+)$ /vedio/category.php?cat=$1&$2 pour http://example.com/vedio/category.php?cat=fun&show=popular&page=1 mais sa ne fonctionne pas.

S'il vous plaît dites-moi quelles pourraient être les bonnes règles de réécriture d'URL pour les exigences ci-dessus?

Répondre

4

La requête ne fait pas partie du chemin d'URL vérifié dans la directive RewriteRule. Vous auriez besoin d'une directive RewriteCond pour le faire.

Mais il vous suffit de régler la QSA flag pour obtenir la chaîne de requête initiale en annexe à la nouvelle:

RewriteRule category/([^.]+)/$ /vedio/category.php?cat=$1 [QSA] 
+0

Parfait +1 et marqué comme réponse :) – Prashant

0

Mon regexp pour le script de la catégorie:

/vedio/category/([^.]+)/\?([^.]+)$ 

Cela dépend si mod_rewrite évalue toutes les URL (serveur + port + chemin) ou tout simplement le chemin de votre script.

+0

La directive 'de RewriteRule' teste juste le chemin d'URL. S'il est utilisé dans un fichier .htaccess, le préfixe contextuel par répertoire est supprimé avant le test et ajouté après l'application d'une règle. – Gumbo

+0

Oui, vous allez bien, c'est pourquoi je vote votre réponse :-) – sourcerebels