Обращение к несуществующему скрипту

12
Web-Silver
На сайте с 02.05.2007
Offline
256
1789

Добрый день!

В старом дизайне сайта был скрипт гостевой книги по адресу: http://www.site.ru/cgi-bin/gb/guest.pl

Со временем этот адрес стал пользоваться популярностью у спамеров, его добавили в автоматические скрипты для размещения объявлений на досках, форумах и в гостевых книгах. Соответсвенно, сейчас этого скрипта просто нет. В логах сервера постоянно выпадает следующая ошибка (вследствии чего повышается нагрузка на сервер):

[Tue Jan 15 09:26:47 2008] [error] [client 121.246.211.153] script not found or unable to stat: /путь_к_папке/public_html/cgi-bin/gb

Подскажите пожалуйста, можно ли от этого избавиться например с помощью таких директив, как Deny/Allow, или директивы модуля mod_rewrite, тем самым запретив доступ к несуществующим ресурсам, или установив перенаправление, например на индексный файл сайта с несуществующих запросов?

Всем заранее благодарен за ответы!

Seo Spy
На сайте с 31.07.2007
Offline
10
#1

конечно! Делайте редирект через .htaccess на главную и будет вам счастье:

Redirect 301 /cgi-bin/gb/guest.pl http://www.site.ru
get rich or die tryin - (c) У Анатолия Вассермана 7 мозгов, один в голове, 5 рассованы по карманам и один в бороде. (http://portal.legko.org/2007/10/26/)
V
На сайте с 15.02.2007
Offline
117
#2

Можно прописать нечто подобное:

#

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ http://www.site.ru/ [R=301,L]

#

В данном случае, если файл скрипта физически отсутствует на сервере (любой файл), произойдет перенаправление на основной сайт.

Если что-то нужно сделать для конкретной папке, то можно использовать директиву:

#

RewriteBase /нужная_папка/

#

Web-Silver
На сайте с 02.05.2007
Offline
256
#3

Ребята, а как лучше сделать?

Voznesensky, спасибо! Это будет относиться и к запрашиваемым картинкам (gif, например)?

Shtogrin
На сайте с 02.11.2006
Offline
95
#4

/путь_к_папке/public_html/cgi-bin/gb/.htaccess

<FilesMatch "guest.pl">

order allow,deny

deny from all

</FilesMatch>

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Web-Silver
На сайте с 02.05.2007
Offline
256
#5

Shtogrin, огромное спасибо! Сейчас сделал Ваш вриант.

Тогда вопрос, нужно ли дополнительно сделать для остальных несуществующих файлов, как предложил Voznesensky?

V
На сайте с 15.02.2007
Offline
117
#6
Web-Silver:
Ребята, а как лучше сделать?

Voznesensky, спасибо! Это будет относиться и к запрашиваемым картинкам (gif, например)?

Он будет так относится к любым отсутствующим файлам в заданной директории. Если файл отсутствует - редирект, при этом в лог ошибки не пишутся, естественно. Такую конструкцию обычно используют, дабы не разрастался лог ошибок из-за несуществующих запросов.

Shtogrin
На сайте с 02.11.2006
Offline
95
#7
Web-Silver:
Тогда вопрос, нужно ли дополнительно сделать для остальных несуществующих файлов, как предложил Voznesensky?

Для несуществующих картинок наверно не нужно перенаправлять на главную, правильнее отдать 404.

Web-Silver
На сайте с 02.05.2007
Offline
256
#8

Shtogrin, теперь выдает такую ошибку:

[Tue Jan 15 10:08:48 2008] [error] [client IP_адрес] client denied by server configuration: /путь_к_папке/public_html/cgi-bin/gb/guest.pl
V
На сайте с 15.02.2007
Offline
117
#9

Сделайте так:

#

RewriteEngine on

RewriteBase /cgi-bin/gb/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ http://www.site.ru/ [R=301,L]

#

Теперь по запросу http://www.site.ru/cgi-bin/gb/flewkfewofjkiewrjgrieg.pl все должно уходить на основной сайт.

Web-Silver
На сайте с 02.05.2007
Offline
256
#10

Voznesensky, подскажите еще пожалуйста, как правильно это сделать для четырех папок сразу:

RewriteEngine on
RewriteBase /cgi-bin/gb/
RewriteBase /scripts/
RewriteBase /catalog/
RewriteBase /top/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://www.site.ru/ [R=301,L]
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий