If there is no real way to figure out the new page from the old string then you could redirect it to a generic 404 page, or an internal Drupal page (or anything really):

RewriteEngine on
RewriteBase /
Rewritecond %{QUERY_STRING} ^q=cgi-bin(.*)$
RewriteRule .* {put your new URL here - keep the space between the * and URL}? [R=301,L]

That would redirect any query that has q=cgi-bin at the beginning to the new page (static 404, the front page, etc.).

If there is a way to figure up your own content then a simple module would come into play here. Check for $_GET['q'] equaling the cgi-bin line and for $_GET['file']. Do it on something like hook_init and then have some code figure the post from the $_GET['file'] and do a drupal_goto based on the result. If nothing is found then just do a 404.


Jamie Holly
http://www.intoxination.net http://www.hollyit.net



Jennifer Hodgdon wrote:
Nancy Wichmann wrote:
> I put this in there already RewriteRule ^cgi-bin/printOriginal.pl/$ http://www.youthsportsparents.com [R=301,L]
> And I am still seeing these come through to the Drupal log.

You said the URLs that were problems looked like this:

http://www.example.com/index.php?q=cgi-bin/printOriginal.pl&file=/alpha/beta/gamma/rage_prevention.shtml

The regular expression above ends in $, which is the regexp special character meaning "end of the string/line". So it would only match a URL that ended with "printOriginal.pl/". You need something after that to match the rest of the URL... Something like:

^cgi-bin/printOriginal.pl/.*

Might work a bit better... (Caveat: I'm not an expert on Apache .htaccess redirects either.)

    -- Jennifer

Reply via email to