Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   вопрос по хтаццесс (https://forum.antichat.xyz/showthread.php?t=63401)

Дикс 04.03.2008 12:36

вопрос по хтаццесс
 
ЗДРАСЪТЕ!!!11

Есть зогадка.

в корневой папке лежит хтацесс с текстом:
PHP код:

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond 
%{REQUEST_FILENAME} !-d
  RewriteRule 
^(.*)$ index.php?q=$[L,QSA

а во вложенной папке - видеофайлы.
Если просто их скачивать - скачиваются.
Если сунуть туда хтаццесс

PHP код:

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile 
/home/mysite/.htpasswd 
AuthGroupFile 
/dev/null 
<Files myvideo.mp4>
require 
valid-user
</Files

и соответствующий .htpasswd

- йа попадаю на страничко сайта с надписью Page Not Found - действует хтаццесс из корневой директории.

Внеманее знотокам!
Зогадка.

Как избавиться от действия корневого хтацесса во вложенной директории?
* посредством добавления директив в хтацесс этой вложенной директории

Helios 04.03.2008 20:33

Код:

RewriteEngine Off

blackybr 04.03.2008 20:58

Эм.. не особо тебя понял, но если нам не изменяет память (и жена :d ) то "главный" как раз корневой хтакцес и то что предложил гелиос не сработает, так как корневой уже "задал правила"

Зы проверено на редиректах

в корне лежит редирект на папку /admin/

в корне админ лежит рерайт енж офф..

someshit.net/admin/

Helios 05.03.2008 00:55

Здесь другая ситуация

Когда апач получает запрос, он начинает его раскручивать в обратном направлении и вложенный в папку .htaccess будет иметь приорите больший, чем корневой.

Проверено на apache 2.0.59

Дикс 05.03.2008 11:17

спасибо, попробую

Дикс 06.03.2008 12:52

блиин

вот смотрите:

/
htaccess:
PHP код:

<IfModule mod_expires.c>
  
ExpiresByType text/html A1
</IfModule>

<
IfModule mod_rewrite.c>
  
RewriteEngine on

  RewriteCond 
%{REQUEST_FILENAME} !-f
  RewriteCond 
%{REQUEST_FILENAME} !-d
  RewriteRule 
^(.*)$ index.php?q=$[L,QSA]
</
IfModule>

AuthUserFile "/home/mededapp/.htpasswds/public_html/passwd" 

/files/
htaccess:
PHP код:

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
Options None
Options 
+FollowSymLinks 

/files/podcasts/
htaccess:
PHP код:

RewriteEngine off
AuthName 
"Restricted Area"
AuthType Basic
AuthUserFile 
/home/mededapp/public_html/files/videos/podcast/.htpasswd
AuthGroupFile 
/dev/null 

в результате при обращении к любому видео нетребующему http-авторизацию, из папки /files/podcasts/ меня выкидывает на главную страницу сайта.
если требовать авторизацию - кидает на страницу сайта PageNotFound

Что тут поделать?

Дикс 06.03.2008 14:48

видимо тут надо поправить вот это выражение
PHP код:

RewriteRule ^(.*)$ index.php?q=$[L,QSA

т.е. исключить из него файлы, лежащие в папке /files/podcasts/
Для этого думаю достаточно исключить слово подкаст.

Исключить набор букв легко, но исключить слово сложнее.
Накопал вот это:
PHP код:

One easy way to exclude text from a match is negative lookbehind
\
w+\b(?<!\bfox

отсюда http://www.codinghorror.com/blog/archives/000425.html

но не понимаю как это правильно применить =\

вот так не работает:
PHP код:

RewriteRule ^\w+\b(?<!\bfox)$ index.php?q=$[L,QSA

вообще символы \w и \b относятся к любым регуляркам - к js и php и в апач?
или везде регулярки различаются?


Время: 10:46