2010-08-14 6 views
1

J'essaie de transmettre une URL en tant que paramètre dans mod-rewrite. Je suppose qu'il y a un problème dans mon Regex. Cette mon .htaccess:Passage et URL en tant que paramètre dans mod-rewrite

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule **^go/((http:\/\/)+[A-Za-z0-9\-]+[\.A-Za-z])/?$** feedmini.php?url=$1 [L] 
</IfModule> 

l'URL que je veux transmettre ressemble http://www.aaaa.com/aaa/?q=v mais chaque fois que je tente de l'atteindre sur rendez-vous/http://www.aaaa.com/aaa/?q=v Je reçois une page d'erreur 404. J'ai aussi essayé avec **^go/([A-Za-z0-9\-\/:]+[\.A-Za-z]+)/?$** mais l'URL que je passe est comme ceci: http: /www.aaaa.com/aaa/ (observez le singel '/' après 'http:');

Des idées?

Merci à l'avance /Ale

+0

Voulez-vous dire que vos URL sont comme 'http://example.com/go/http://stackoverflow.com/ '? –

+0

Bonjour Tim! Oui, c'est exactement ce que je veux accomplir, mais je n'ai encore aucun résultat positif. – Alecoletti

Répondre

1

Eh bien votre premier problème (dans votre premier bloc de code) est que votre modèle de Regex ne correspond pas à une URL car il ne correspond une chaîne qui commence par http: // puis ne contient que de l'alphanum ou des tirets, qui se terminent par un seul point ou une seule lettre. Peut-être s'agit-il simplement d'une faute de frappe et il devrait y avoir un quantificateur, mais même s'il ne correspondrait pas à un très grand pourcentage ou à des URL.

Cela peut sembler un peu étrange, mais essayer ...

RewriteRule ^go/http:/(.*)/?$ feedmini.php?url=http://$1 [R=302,L] 
+0

Notez que le '/?' À la fin ne correspondra jamais, parce que le '. *' Attrapera la barre oblique si elle est là (ce qui est bien). Aussi, +1, puisque c'est la bonne réponse. Tout nombre de barres obliques multiples sera condensé en une seule barre oblique avant d'être transmis au motif de test RewriteRule. –

+0

Bon point Tim, je suppose que je suis juste habitué à écrire /? à la fin de mes modèles :) –

+0

Salut, merci pour l'aide! Son fonctionnement parfait maintenant. Je pense que je devrais en apprendre plus sur Regex;) – Alecoletti

Questions connexes