Vous pouvez définir une variable d'environnement:
RewriteRule ^(bla|blo|bli|blu|bloi|bkdo|doid|boidi|woekj|dfpo8ds)/?$ /section_index.php?sectionurl=$1 [L,E=FOOBAR:$1]
La valeur est maintenant accessible avec %{ENV:FOOBAR}
.
Modifier Une autre façon serait de traiter la demande dans les étapes et de la chaîne des règles:
# first path segment
RewriteRule ^(bla|blo|bli|blu|bloi|bkdo|doid|boidi|woekj|dfpo8ds)/?([^/].*)?$ $2?sectionurl=$1 [QSA,C]
# second path segment
RewriteRule ^(blog|foo)/?([^/].*)?$ $2?arg1=$1 [QSA,C]
# third path segment
RewriteRule ^(bar|baz)/?([^/].*)?$ $2?arg2=$1 [QSA,C]
# last rule
RewriteRule ^$ section_index.php [L,QSA]
Mais comme vous utilisez PHP, vous pouvez également utiliser PHP pour analyser le chemin de la requête, pour exemple:
$_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
$segments = explode('/', trim($_SERVER['REQUEST_URI_PATH'], '/'));
$argNames = array('sectionurl', 'arg1', 'arg2', 'arg3');
foreach ($segments as $i => $segment) {
if (isset($argNames[$i])) {
$_GET[$argNames[$i]] = $segment;
}
}
var_dump($_GET);
maintenant, il vous suffit d'envoyer toutes les demandes à ce fichier PHP en utilisant cette règle:
# exclude requests for existing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
Quel est exactement votre problème? Donnez-nous un exemple de la façon dont vous pensez qu'une variable résoudrait votre problème. – Gumbo
Le problème est que j'utilise cette ligne de réécriture plusieurs fois dans le fichier htaccess. Chaque fois que je dois écrire l'ensemble bla | blo | bli | blu | bloi | bkdo | doid | boidi | woekj | dfpo8ds pièce à nouveau. Donc, je voudrais juste mettre cela dans une variable et commencer à faire cela: RewriteRule^(MVARIABLE) /? $ /section_index.php?sectionurl=$1 [L] – PeterV
Mais pourquoi utilisez-vous la même expression dans plus de une règle? Ou cette expression est-elle juste une sous-expression (peut-être un préfixe) d'une autre expression? Encore une fois, un exemple de telles règles serait utile. – Gumbo