web-dev-qa-db-fra.com

Écrire des URLs propres avec .htaccess

Update - D'accord, merci à tous pour vos tests, cela nous a vraiment aidé. Le code est bon. Mon problème était de ne pas avoir de liens "/" absolus. (En raison du déplacement du dossier public_html).

Seulement 2 préoccupations que j'ai maintenant.

1.) Remplacez "^ achilles" par "^ ([0-9a-zA-Z _-] +)" et les vignettes n'apparaîtront pas (les données de paramètre ne sont pas véhiculées ???)

2.) Comment puis-je faire http://funkygames.co/games/achilles/achilles/1 devenir encore plus court comme http://funkygames.co/games/achilles = Ou les paramètres sont-ils absolument obligatoires?.

# Turn Rewrite Engine On
RewriteEngine on     

# Set the base to /games/ so we need not include it in the rules
RewriteBase /games/

#Rewrite for achilles.php?games_path=xxxxxxxxxx.yyy&category_id=zzz
RewriteRule ^achilles/(.*)/([0-9]+) $1.php?games_path=$1.swf&category_id=$2 [NC,L]

Où j'ai appris: www.youtube.com/watch?v=1pbAV6AU99I


RESOLU! Merci à vous les gars. Solution:

# Turn Rewrite Engine On
RewriteEngine on     

# Set the base to /games/ so we need not include it in the rules
RewriteBase /games/

#Rewrite for achilles.php?games_path=xxxxxxxxxx.yyy&category_id=zzz
RewriteRule ^([0-9a-zA-Z_-]+)/([0-9]+) $1.php?games_path=$1.swf&category_id=$2 [NC,L]

http://funkygames.co/games/achilles/1

3
Hulio-G

Résolu! Merci à vous les gars. Solution:

# Turn Rewrite Engine On
RewriteEngine on     

# Set the base to /games/ so we need not include it in the rules
RewriteBase /games/

#Rewrite for achilles.php?games_path=xxxxxxxxxx.yyy&category_id=zzz
RewriteRule ^([0-9a-zA-Z_-]+)/([0-9]+) $1.php?games_path=$1.swf&category_id=$2 [NC,L]

http://funkygames.co/games/achilles/1

Si votre site Web apparaît mais ne montre pas d'images ni de contenu dynamique dans la base de données. Ensuite, vous devez vous assurer que vous utilisez des liens absolus

"/ this-is-absolute" (fonctionnera à partir de n’importe quel dossier) "this-relative" (ne fonctionnera qu’à partir de public_html)

3
Hulio-G

J'ai: http://funkygames.co/games/achilles.php?games_path=achilles.swf&category_id=1

Je veux: http://funkygames.co/games/achilles/achilles/1 ou même mieux: funkygames.co/games/achilles/1 (si c'est possible)

Essaye ça:

RewriteRule ^games/achilles/(.*)/([0-9]+)$ /games/achilles.php?games_path=$1.swf&category_id=$2 [NC,L]

Et si le nom du jeu doit être sensible à la casse, supprimez le NC de [NC,L].

2
Mike