jkm

Рейтинг
120
Регистрация
20.02.2014

Тогда поможет директива FilesMatch.


<FilesMatch "(?<!error\.php)$">
AuthUserFile /..../.htpasswd
AuthType Basic
Require valid-user
</FilesMatch>

Авторизация будет для всех файлов кроме error.php

В документации описаны причины такого поведения http://httpd.apache.org/docs/2.2/mod/core.html#errordocument


if you use a remote URL in an ErrorDocument 401, the client will not know to prompt the user for a password since it will not receive the 401 status code. Therefore, if you use an ErrorDocument 401 directive then it must refer to a local document.

Так что тут можно использовать только относительные пути.


ErrorDocument 401 /


---------- Добавлено 28.08.2014 в 03:49 ----------

Dzen:

Но если закрываем весь домен!, то через абсолютный путь не работает переброс на какой-либо файл или редирект.

Проверку делаете уже авторизованным? Там нюанс в том, что mod_auth_basic отработает раньше, чем mod_rewrite.

Если Referer не с домена simprid.ru используя php накладывают поверх нужное изображение.

http://php.net/manual/en/image.examples-watermark.php

Шаблон для поиска (/watch\?v=[^"]+) и воспользоваться механизмом закладок в Notepad++.

Shuval:

Вопрос к профи может ли быть из-за этого кода такая хрень?

Именно так и есть, код проверяет юзер агент и прерывает исполнение скрипта.

Речь была о том, чтобы в правилах для редиректа делать дополнительную проверку, каким методом был сделан запрос.


RewriteCond %{REQUEST_METHOD} ^GET$ [NC]
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

RewriteCond %{REQUEST_METHOD} ^GET$ [NC]
RewriteRule ^index\.php/(.*)$ /$1 [R=301,L]

RewriteRule ^administrator/ - [L]

RewriteCond %{REQUEST_METHOD} ^GET$ [NC]
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Jaroslav:
При чем, совершенно непонятно, как на работу модуля влияют эти строчки.

Данные формы отправляются методом POST. После получения 301 редиректа новый адрес запрашивается методом GET и все данные формы из предыдущего запроса теряются.

Есть два пути решения:

1) Использовать в правилах RewriteCond %{REQUEST_METHOD} ^GET$ [NC]

2) Поправить адрес в форме добавления комментария


RewriteEngine On
RewriteRule ^(.+?)/.* http://domen.ru/$1 [R=301,L]
Всего: 749