ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] Условная выдача 404



> EG> Есть ли возможность средствами самого апача одним клиентам отдавать URL,
> EG> а другим возвращать 404? Речь идет о статическом контенте и разделении
> EG> клиентов по IP в Apache 1.3.14. Обязательно ли для этого собирать Apache
> EG> с mod_rewrite (у меня он отключен) и изучать его доку?
> 
> Если необязательно отдавать ошибку в заголовке, а можно генерить
> страничку с сообщением о 404, то просто повесьте на ErrorDocument 404
> cgi-ку которая и будет делать выбор. В таком случае мод реврайт и
> ненужен вовсе.

Через cgi мне не подходит.
Есть DocumentRoot /usr/local/apache/data и есть контент в /hidden, это
вне DocumentRoot. Можно URL /hidden переписывать в дисковый путь /hidden
для некоторых адресов, а для остальных - не переписывать, они тогда получат
404.

Я попробовал так:

<Location /hidden>
RewriteEngine On
RedirectCond %{REMOTE_ADDR} regexp
RewriteRule ^/hidden(.*)$ /hidden$1
</Location>

Не работает, так как перед проверкой дописывает DocumentRoot к URL (1.3.14)
и RewriteRule не срабатывает. Пробую так:

<Location /hidden>
RewriteEngine On
RedirectCond %{REMOTE_ADDR} regexp
RewriteRule ^/usr/local/apache/data/hidden(.*)$ /hidden$1
</Location>

RewriteRule срабатывает, но делает internal redirect на /hidden,
которого нет внутри DocumentRoot. Если теперь добавить 
Alias /hidden /hidden
то все работает, но меня это не устраивает - можно получить контент,
запросив /hidden.

Получается, фактически RewriteRule отображает файл в URL, а мне
надо наоборот, как это Alias делает. 
Как?

Eugene
=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.