2010-01-24 8 views
1

Je voudrais ajouter une condition de réécriture dans mon htaccess qui serait vraie si l'appel d'un fichier php renvoie "true" ou false sinon. J'utilise le commutateur -U dans mon RewriteCond pour lancer une sous-requête et si la condition n'est pas satisfaite, le script PHP renvoie une erreur 404, qui déclenche le rewriteCond.Apache RewriteCond à partir du résultat de la requête php

Mon but est d'exécuter un service de raccourcissement d'URL en parallèle avec un site web PHP.

Voici mon .htaccess actuel

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond /smallurl/%{REQUEST_URI} !-U 
RewriteRule (.*) index.php/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) smallurl/$1 [L] 

Quelle est la meilleure pratique pour réaliser quelque chose comme ça? Recommandations, les choses que je devrais être au courant de? Y a-t-il un moyen d'éviter la sous-demande, ou au moins de l'accélérer?

Merci

+0

Je voudrais raccourcir le texte 'smallurl' d'abord;) – Franz

+0

Oui, mais le point entier est qu'il n'apparaît pas dans l'URL – jfoucher

+0

droite. Je suis stupide, désolé. J'aurais dû lire le code plus attentivement;) – Franz

Répondre

0

Vous pouvez utiliser un RewriteMap pour passer le REQUEST_URI à un fichier php, qui renvoie le résultat - Je pense que cela fonctionnerait avec RewriteCond, bien que vous pourriez trouver cela fonctionne mieux en tant que norme RewriteRule

la spécification est à http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteMap

Fondamentalement, votre fichier php doit lire php: // stdin et sortie le résultat à stdout

Désolé je ne peux pas être plus utile, ce n'est pas quelque chose que j'ai fait depuis longtemps, longtemps!

+0

Ok, merci, je vais certainement essayer ça. Je ne pourrais même pas utiliser un fichier php pour retourner le résultat, mais un simple script shell ou une commande peut-être, même si c'est moins indépendant de la plate-forme ... Merci pour la réponse de toute façon – jfoucher

Questions connexes