mod_rewrite : si / d'autre type RewriteRule
La réécriture suivante passe une chaîne de caractères commençant par le numéro 4 comme une variable à process.php :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(4[^/]*)$ /process.php?variable=$1 [L]
Donc ce
http://www.domain.com/4shopping
est mappé à
http://www.domain.com/process.php?variable=4shopping
Mais je veux prolonger cette dernière règle de réécriture pour l'essentiel à l'état:
if word begins with 4, map to /process.php?variable=$1
else map to /index.php
La deuxième (encore) partie de cette déclaration est la base WordPress règle de réécriture. Ainsi, par exemple:
http://www.domain.com/shopping
qui n'a pas de 4 sera dirigé vers
http://www.domain.com/index.php?shopping (I believe this is how WordPress permalinks work!)
OriginalL'auteur Paul | 2009-09-25
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
La première règle de l'attraper toute demande qui peut être mappé à un fichier ou à un répertoire, et prendra fin le processus de réécriture. La deuxième règle est la vôtre (sans le
RewriteCond
conditions). Et la troisième règle va attraper toute demande de chemin d'accès d'URL ne commence pas par le nombre4
.Utiliser mod_rewrite de la fonctionnalité de journalisation pour voir ce qui ne va pas. Voir httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteloglevel
OriginalL'auteur Gumbo
Voici la solution:
J'ai laissé la valeur par défaut de WordPress règles en place, et en ajoutant mes propres conditionnels à la règle ci-dessus, en veillant bien à mettre fin à [L] le traitement si la condition est remplie
OriginalL'auteur Paul
Je voudrais ajouter deux lignes à la fin de ce que vous avez déjà. Les règles supplémentaires seront convertis en index.php ce qui n'a pas déjà été converties en process.php.
OriginalL'auteur bmb