You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Michael McGlothlin <mi...@swplumb.com> on 2007/10/08 21:43:59 UTC

[users@httpd] Why does my rewrite not work?

 RewriteCond %{HTTP_USER_AGENT} ^.*[Googlebot|Yahoo!\ Slurp].*$
 RewriteCond %{QUERY_STRING} ^(.*)([\?|&]pathKey=\d*)(.*)$
 RewriteRule (.*) $1?%1%3 [R,L]

I'm using Apache 2.2.6 running on Fedora Linux 6 with kernel 2.6.20. My intent is to rewrite any request from Google or Yahoo so that if the URL contains pathKey=whatever it'll just drop that part. That portion is being dropped correctly but it's happening regardless to the user agent. Anyone know what I'm doing wrong? Thanks.

-- 
Michael McGlothlin
Southwest Plumbing Supply


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Why does my rewrite not work?

Posted by Michael McGlothlin <mi...@swplumb.com>.
Thanks, that seems to be what I was overlooking. Converts 
https://www.plumbersstock.com/product.html?partNumber=128&pathKey=33245 
to https://www.plumbersstock.com/product.html?partNumber=128 just for 
Google and Yahoo. For others' reference this is the finished code that 
seems to work for me:

 RewriteCond %{HTTP_USER_AGENT} ^.*(Googlebot|Yahoo!\ Slurp).*$ [NC]
 RewriteCond %{QUERY_STRING} ^(.*)(&+pathKey=\d*)(.*)$
 RewriteRule (.*) $1?%1%3 [R,L]

-- 
Michael McGlothlin
http://www.PlumbersStock.com/

>>  RewriteCond %{HTTP_USER_AGENT} ^.*[Googlebot|Yahoo!\ Slurp].*$
>>     
> In a regex [charclass] matches any single character in charclass. In
> other words, that expression will match any user agent string that
> contains a "G", or an "o", or an "l", or an "e", etc. Replacing the []
> with () will help.
>
> Also, use the RewriteLog for debugging.
>   

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Why does my rewrite not work?

Posted by Joshua Slive <jo...@slive.ca>.
On 10/8/07, Michael McGlothlin <mi...@swplumb.com> wrote:
>  RewriteCond %{HTTP_USER_AGENT} ^.*[Googlebot|Yahoo!\ Slurp].*$

In a regex [charclass] matches any single character in charclass. In
other words, that expression will match any user agent string that
contains a "G", or an "o", or an "l", or an "e", etc. Replacing the []
with () will help.

Also, use the RewriteLog for debugging.

Joshua.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org