Utilisation de Mod_Rewrite dans HTTPD.Fichier CONF
Je veux réécrire les Url ainsi, lorsqu'un utilisateur accède à;
http://www.example.com/applications/newWeb/www/index.php?page=48&thiscontent=2660&date=2013-10-11&pubType=0&PublishTime=09:30:00&from=home&tabOption=1
et si l'URL contient thiscontent=2660
(qui dans l'exemple ci-dessus, il n') je veux rediriger vers;
http://www.example.come/index.php/publications/finance-and-economics/departmental-resources
J'ai environ 30 différents thiscontent=XXXX
types et imagine que je vais devoir copier et modifier cette règle de 30 fois pour les liens vers mon ancien site web encore frapper autour.
J'ai accès à mon httpd.fichier conf, mais n'ont jamais fait un mod_rewrite avant.
Je n'ai pas vraiment besoin de ces montrant dans les journaux d'erreur des redirections 301. Sera-ce arrivé? Car pour le moment il y a des centaines!
OriginalL'auteur mikelovelyuk | 2013-10-21
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord assurez-vous que le mod_rewrite est chargé. Cette ligne doit être décommentée dans votre httpd.conf:
Vous pouvez ensuite utiliser ces règles:
Et oui, vous aurez besoin pour l'installation de chacun spécifiquement, de sorte que vous aurez besoin de 30 de ceux-là (mais ne doivent
RewriteEngine On
une fois. Vous pouvez aussi mettre ces règles dans un fichier htaccess dans la racine du document.thiscontent=(2660|1234|..)
pour éviter de répéter la règle si l'URL cible est la même.Pouvez-vous développer sur la
(^|&)
et(&|$)
syntaxe s'il vous plaît? Ou dites-moi ce que c'est appelé pour que je puisse regarder et apprendre? Je ne l'ai jamais utilisé..Le
(<something>|<something else)
signifie une chose ou l'autre. Le(^|&)
signifie le début de la chaîne, ou un&
, tandis que le(&|$)
signifie un&
ou la fin de la chaîne.Dois-je emballer mes règles de réécriture dans un
<IfModule mod_rewrite.c>
bloc?non, c'est seulement si vous voulais le port de votre stuff sur un autre serveur qui n'a pas de mod_rewrite chargé
OriginalL'auteur Jon Lin