.htaccess запрещено для всех, кроме случаев, когда конкретные {querystring} / $ _ GET - PullRequest
0 голосов
/ 20 января 2011

Предисловие: я знаю, что это небольшой недостаток безопасности, но я бы хотел htaccess решение

У меня есть полуприватная вики (php, mysql, mediawiki), которую я хотел бы разрешить только для определенного диапазона IP-адресов, кроме как сделать ее общедоступной (разрешить все), если заголовок статьи title = public_articleName #### , который я считаю ^ title = public_articleName ([0-9] {4}) $ ?

Я также использую правила переписывания в htaccess верхнего уровня, чтобы URL-адреса были украшены (www.site.com/wiki/article на самом деле www.site.com/wiki/index.php?title=article), в моем случае я бы хотел, чтобы www.site.com/wiki/ был (частично) запрещен, но www.site.com/wiki/public_articleName2345 был видим )

Есть идеи? Я знаю, что вы можете получить доступ к% {QUERY_STRING}, но я понятия не имею, форсировать 403 на основе этого совпадения (за исключением IP-адресов xxx.xxx.xx.xxx)

Спасибо за ваш вклад

редактирование: уточнения

1 Ответ

1 голос
/ 20 января 2011

Вы можете использовать флаг [forbidden] в RewriteRules:

RewriteRule  index.php?title=disallow  forbid.html  [F]

Вы можете комбинировать это с RewriteCond, возможно, для сопоставления IP-адресов или запрета применения этого правила к разрешенным страницам.

RewriteCond  ${REMOTE_ADDR}  !78.22.131.219
RewriteRule  index.php?title=disallow  forbid.html  [F]    

Некоторые заметки здесь: https://serverfault.com/questions/214512/everything-you-ever-wanted-to-know-about-mod-rewrite-rules-but-were-afraid-to-ask

Однако было бы намного проще реализовать это программно в программном обеспечении вики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...