2010-06-19 5 views
1

J'ai eu des règles de réécriture d'apprentissage moment difficile dans les fichiers .htaccess, donc j'espérais que quelqu'un pourrait me montrer comment réécrire ceci:fichier .htaccess: Dynamic redirect

test.com/home/feed/toak/nyheter/vg

en ceci:

test.com/index.php?r=home & f = alimentation; Toak; nyheter; vg

Ceci est une URL dynamique, et peut avoir plusieurs éléments séparés par; à la fin. Je souhaite que mes utilisateurs puissent saisir des URL aussi conviviales que possible. J'espère que quelqu'un peut aider!

Répondre

4

Si vous avez un nombre variable de paramètres, vous ne pouvez pas le faire uniquement avec .htaccess. Vous pouvez réécrire en php:

RewriteEngine On 
RewriteRule .* rewrite.php [NE,L] 

et analyser $_SERVER['REQUEST_URI'] dans rewrite.php.

Pour nombre statique de 4 variables:

RewriteEngine On 
RewriteRule ^(\w+)/(\w+)/(\w+)/(\w+)/(\w+) index.php?r=$1&f=$2;$3;$4;$5 

Ou vous pourriez faire (pour un certain nombre de variables):

RewriteEngine On 
RewriteRule ^(\w+)/(.*) index.php?r=$1&f=$2 

Et utiliser $_GET['f'] = strtr($_GET['f'], '/', ';'); dans index.php.

+0

Okai, mais comment faire cela dans rewrite.php avec un nombre dynamique de variables? – toak

+0

'$ vars = explode ('/', $ _SERVER ['REQUEST_URI']); $ r = array_shift ($ vars); $ f = $ vars; ' – Mewp

+0

Okai, merci beaucoup! – toak