2017-10-02 14 views
0

J'essaie de réécrire l'URL de façon dynamique dans un fichier existant. Ceci est l'exemple statique:URL de réécriture .htaccess basée sur la variable de cookie

DirectoryIndex load.php live.php 
Options +FollowSymlinks 
RewriteEngine On 

RewriteRule ^cole$ live.php 

comme prévu, cela fonctionne très bien, quand unepage même appelle racine cole, il redirige vers live.php.

Maintenant, je veux rediriger vers la page live.php mais remplacer cole avec la valeur dynamique de cookie.

J'ai essayé ceci:

DirectoryIndex yosh.php 

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_COOKIE} cookieName=([^;]+) [NC] 

RewriteRule ^(.*)$ pimp.php [QSA,L] 

Il doen't, il suffit d'afficher une page 404 not found. Notez que j'utilise WAMP.

Une idée sur la façon de faire cela?

+1

Votre code ne semble pas faire ce que vous avez besoin, cependant, vous ne devriez pas être obtenir un 404, si existe '/ pimp.php'? Ce code doit réécrire l'URL _any_, en fournissant 'cookieName' à _something_. Donc, si cela ne fonctionne pas alors je déboguerais ceci en premier (puisque le code plus complexe ne fonctionnera certainement pas). Pouvez-vous voir 'cookieName' dans la requête, avec une valeur _positive_? – MrWhite

+1

_Aside: _ Y a-t-il une raison pour laquelle vous modifiez 'DirectoryIndex'? Vous n'avez pas besoin de définir 'pimp.php' comme 'DirectoryIndex' pour simplement le réécrire. – MrWhite

+0

@MrWhite, pimp.php existe, dans le même répertoire que le fichier htaccess. 'DirectoryIndex' ne s'applique qu'à' yosh.php'. J'ai laissé 'pimp.php' en première ligne du test précédent, mais je pense que ça n'a pas d'importance sur le résultat, n'est-ce pas? – Origin

Répondre

1

Vous pouvez utiliser:

RewriteCond %{HTTP_COOKIE} cookieName=([^;]+) [NC] 
RewriteCond %{REQUEST_URI} /%1/?$ [NC] 
RewriteRule^/sub/pimp.php [QSA,L] 
+0

ok, j'ai essayé votre code, mais le même résultat, url 'http://localdomain.com/sub/cookieValue 404 pas trouvé'. où cookieValue est la valeur de cookie précédemment générée dans le même chemin. – Origin

+0

C'est parce que vous utilisez sous-dossier ... Essayez maintenant (sans ^, et avec pimp.php à la racine) – Croises

+0

Comment faire? 'pimp.php' est dans le même sous-dossier et doit l'être. – Origin