htaccess

E
На сайте с 21.10.2005
Offline
59
669

Всем привет!

Если здесь есть знатоки htaccess, прошу помочь :)

Ситуация такая:

На сервере в корне htdocs есть папка /data , а в ней файлы:

/data/file.php

/data/index.html

/data/.htaccess

Задача:

Составить htaccess, который бы запрещал доступ из веба ко всем файлам папки, но разрешал бы доступ к http://site.ru/data/file/request/, причем:

а) http://site.ru/data/file/request/ - это тоже самое, что /data/file.php?request

б) request - это константа, а не переменная

в) доступ возможен только с одного ip - 192.168.0.1

г) вместо 403 должна выдаваться 404 ошибка

Третий день бьюсь. Буду признателен за советы.

цццюнфтвучюкг (http://opechat.ca/perevod/yandex_ru/) и нфтвучюкг (http://opechat.ca/perevod/yandex_ru/) - это диагноз!
dantess
На сайте с 06.11.2004
Offline
133
#1
evgwest:

а) http://site.ru/data/file/request/ - это тоже самое, что /data/file.php?request
б) request - это константа, а не переменная
в) доступ возможен только с одного ip - 192.168.0.1
г) вместо 403 должна выдаваться 404 ошибка

Третий день бьюсь. Буду признателен за советы.

Покажите то что сами сделали. Что именно не получается?

пункт г) невозможно сделать голым htaccess без mod_rewrite

content
На сайте с 23.01.2006
Offline
103
#2

dantess, разве в условии задачи стояло не использовать mod_rewrite? Вроде как раз наоборот.

evgwest, третий день и впрямь много. Сделайте так:



<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^file/request/$ file.php?request [L]
RewriteRule !^file\.php - [F]
</IfModule>

order deny,allow
deny from all
allow from 192.168.0.1

dantess
На сайте с 06.11.2004
Offline
133
#3
content:
dantess, разве в условии задачи стояло не использовать mod_rewrite? Вроде как раз наоборот.

Просто mod_rewrite - совершенно отдельный модуль apache. И у хостера он может не стоять (сталкивался).

Не поверите - у одного из ТОП-15 крупнейших хостеров стоит mod_rewrite, но не стоит mod_proxy. А флаг [p] - вещь необходимая.

content
На сайте с 23.01.2006
Offline
103
#4

dantess, я просто задачу сразу оценил как указание использовать mod_rewrite из-за пункта а) - http://site.ru/data/file/request/ - это тоже самое, что /data/file.php?request

Насчет mod_proxy - согласен, это нездоровый момент. Тут надо взвешивать соотношение: необходимость фичи/привязанность к хостеру. :)

dantess
На сайте с 06.11.2004
Offline
133
#5
content:
Насчет mod_proxy - согласен, это нездоровый момент. Тут надо взвешивать соотношение: необходимость фичи/привязанность к хостеру. :)

Ситуация с хостером закончилась так - аккаунт остался для эсперементов с яшей. (только по тому, что оплачен на год). Ноги моей к ним больше не будет.

А из-за того, что не было mod_proxy хостер лишился возможности зарегистрировать для нас (и хостить) 120 доменов ру.

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