Hi list,
I've run into an interesting problem with mod_rewrite. I'm trying to create a URL structure where I can pass an entire URL as a GET variable. For example, I want to capture everything past url/: http://www.mysite.com/url/http://www.google.com/search?hl=en <http://www.mysite.com/url/http:/www.google.com/search?hl=en&q=test&btnG=Sea rch&cts=1240079299914> &q=test&btnG=Search&cts=1240079299914 Ideally, I want the GET variable passed to PHP to be: http://www.google.com/search?hl=en <http://www.google.com/search?hl=en&q=test&btnG=Search&cts=1240079299914> &q=test&btnG=Search&cts=1240079299914 I got it working for everything up to the query string using this rule: RewriteRule ^url/(.+)$ /?page=url&url=$1 [L] It matched: http:/www.google.com/search My guess was anything past the ? would not be interpreted by mod_rewrite, so I tried to capture the query string by adding a trailing slash to both my URL and my rewrite rule: RewriteRule ^url/(.+)/$ /?page=url&url=$1 [L] This broke things and I got this error: The requested URL /url/http:/www.google.com/search was not found on this server. (Source: http://www.mysite.com/url/http://www.google.com/search?hl=en&q=test&btnG=Sea rch&cts=1240079299914/) I thought I could fix it by encoding the URL contents. I was wrong: The requested URL /url/http://www.google.com/search?hl=en&q=test&btnG=Search&cts=1240079299914 / was not found on this server. (Source: http://www.mysite.com/url/http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Den%26q %3Dtest%26btnG%3DSearch%26cts%3D1240079299914/) Can anyone give me any insight as to why ^url/(.+)/$ won't match: http://www.mysite.com/url/http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Den%26q %3Dtest%26btnG%3DSearch%26cts%3D1240079299914/ Thanks! Kirk Ouimet <mailto:[email protected]> [email protected]
_______________________________________________ UPHPU mailing list [email protected] http://uphpu.org/mailman/listinfo/uphpu IRC: #uphpu on irc.freenode.net
