dis que j'ai un site web avec /article.php?id=1&category=Minecraft&Name=Lorem+Ipsum
et /topic.php?category=Minecraft
comment pourrais-je configurer l'URL de réécrire pour que les pages de sujet soient
minecraft.domain.com
et articles étant
minecraft.domain.com/1/Lorem+Ipsum
Je ne trouvais pas comment faire cela n'importe où sur le Web ... enfin, au moins sur google
1) Sur votre site Web, assurez-vous de générer PROPER URL, par exemple. http://minecraft.domain.com/1/lorem-ipsum
au lieu de /article.php?id=1&category=Minecraft&Name=Lorem+Ipsum
Ici, les caractères acceptables pour le nom de l'article sont:
_
-
Tous les autres caractères doivent être remplacés par -
. Si lors de la normalisation d'URL, vous vous retrouvez avec plus de 1 -
caractère l'un à côté de l'autre - supprimez ces caractères supplémentaires. Le nom de l'article ne doit pas commencer ni se terminer par -
ou _
.
Exemple de processus de normalisation (étape par étape):
Oops! I did it again!
- texte initialoops--i-did-it-again-
- après avoir remplacé les caractères indésirables par -
oops-i-did-it-again-
- suppression des caractères -
dupliquésoops-i-did-it-again
- dernière piqûre après la suppression de la fin -
2) Configurez votre sous-domaine minecraft.domain.com
pour qu'il pointe dans le même dossier racine que domain.com
.
3) Ajoutez ces règles dans votre .htaccess
# Activate Rewrite Engine
RewriteEngine On
# Do not do anything for already existing files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]
# rewrite root (topic) hit
RewriteCond %{HTTP_Host} ^minecraft\.domain\.com$
RewriteRule ^$ /topic.php?category=Minecraft [QSA,L]
# rewrite article hits
RewriteCond %{HTTP_Host} ^minecraft\.domain\.com$
RewriteRule ^(\d+)/([a-z0-9\-_]+)$ /article.php?id=$1&category=Minecraft&Name=$2 [NC,QSA,L]
Ces règles feront ces réécritures:
minecraft.domain.com
=> /topic.php?category=Minecraft
minecraft.domain.com/1/lorem-ipsum
=> /article.php?id=1&category=Minecraft&Name=lorem-ipsum
PDATE:
Ces règles fonctionneront pour tous les sous-domaines (y compris www.domain.com) - remplacez les 6 dernières lignes de l'extrait précédent:
# rewrite root (topic) hit
RewriteCond %{HTTP_Host} ^([a-z0-9\-]+)\.domain\.com$ [NC]
RewriteRule ^$ /topic.php?category=%1 [QSA,L]
# rewrite article hits
RewriteCond %{HTTP_Host} ^([a-z0-9\-]+)\.domain\.com$ [NC]
RewriteRule ^(\d+)/([a-z0-9\-_]+)$ /article.php?id=$1&category=%1&Name=$2 [NC,QSA,L]
Il est de VOTRE responsabilité de générer des URL APPROPRIÉES. Les règles ci-dessus feront en sorte que ces belles URL fonctionnent.