![]() |
|
![]() ![]() ![]() |
|
brave |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
Всем привет, пытаюсь закрыть доступ на определенный url, но не работает...
вот сам url: domain.com/index.php?id=12 нужно запротектить все url, которые содержат id=12 Вот что получилось, но выдает 500 ошибку на сервере, mod_rewrite включен, проверял. Обычный протект тоже работает нормально. RewriteEngine On RewriteCond %{REQUEST_URI} ^/index\.php$ RewriteCond %{QUERY_STRING} ^id=(12)$ RewriteRule ^(.*)$ /id/%1 [PT] <LocationMatch "/id/12"> AuthType Basic AuthName "By Invitation Only" AuthUserFile /home/luxeon/public_html/.htpasswd Require valid-user </LocationMatch> Может кто знает, в чем проблема? |
|||
|
||||
mark2009 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 12.10.2009 Репутация: нет Всего: 1 |
RewriteCond %{QUERY_STRING} ^id=12$
Попробуйте вот так. У вас ведь условие:
т.е. это точно известно, что именно 12. |
|||
|
||||
brave |
|
||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
Да, точно известен номер id. Пробовал без скобок, всеравно 500 ошибка. |
||||
|
|||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 5 Всего: 386 |
Некоторые глюки понимания можно исправить только отладкой. Для этого, на тестовом хосте нужно указать в конфиге appache в секции своего хоста примерно такое
Параметр RewriteLog содержит имя до лога. Лог довольно быстро заполняется, так что имеет смысл его включать только на тестовом хосте. А по сути - возможно, QUERY_STRING начинается с символа `?`. Правда почему ошибка 500 - нужно смотреть в логах... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
brave |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
В логах: <LocationMatch not allowed
Походу на шареде работать не будет... |
|||
|
||||
brave |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
Хм, попробовал другим способом, 500 ошибки нет, но и не работает тоже
SetEnvIf Host domain.com index.php?id=12 AuthType Basic AuthName "Staging Server" AuthUserFile /home/luxeon/public_html/.htpasswd #AuthGroupFile /home/luxeon/public_html/.htgroup Require valid-user Order allow,deny Allow from all Deny from env=index.php?id=12 Satisfy any |
|||
|
||||
brave |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
Может кто подскажет более простой способ запаролить доступ к url с определенной query, через php или javascript?
|
|||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 5 Всего: 386 |
http://php.net/manual/en/features.http-auth.php Можно и на php
Это сообщение отредактировал(а) ksnk - 9.10.2012, 22:00 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
brave |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
Спасибо, этот код я видел, а вот если надо проверять url и если совпадает с условием(содержит id=12), то запрашивать пароль. Не знаете, как это реализовать? |
||||||
|
|||||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 5 Всего: 386 |
? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
brave |
|
||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
Ok, спасибо. Значит, используя $_GET, можно вытянуть значения с query. Еще вопрос, как можно организовать логику? Есть index.php страница, контент на этой странице отображается в зависимости от query(index.php?id=10, index.php?id=11 и т. д.). Просто index.php и все query с id!=12 должны отображать контент, а query id=12 должна запрашивать пароль и потом в случае успеха, показывать контент id=12. Я так понимаю запрос пароля сделать в отдельном php файле и в исходном index.php файле проверять значение $_GET на 12. Если удовлетворяет, то редирект на страницу с запросом пароля, а потом обратно? Так вроде редирект луп будет... Как можно это огрганизовать? Добавлено через 9 минут и 6 секунд Сделал отдельный файл secure.php, только как передать работу обратно index.php при введении правильного пароля, ведь в index.php опять будет проверяться условие на id=12 и отправлять к secure.php - замкнутый круг и out of memory (делал через include). |
||||
|
|||||
brave |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 7.3.2010 Репутация: нет Всего: нет |
Отбой, все сделал, все работает.
Спасибо за помощь. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |