Если в корневой папке домена находится подпапка с файлами и мы к этой подпапке с файлами хотим закрыть доступ, то в файле .htaccess нужно прописать следующую команду:
Например хотим закрыть доступ к папке 1
RewriteEngine on RedirectMatch 403 ^/папка1/.*$
А если мы хотим закрыть доступ ещё и к папке 2, то нужно написать следующее:
RewriteEngine on RedirectMatch 403 ^/папка1/.*$ RedirectMatch 403 ^/папка2/.*$
Но я не хочу создавать новые строки RedirectMatch 403
Я хочу в одной строке RedirectMatch 403 перечислять все папки, а как их перечислить не знаю. Типо так:
RewriteEngine on RedirectMatch 403 ^/папка1, папка2/.*$ — но эта конструкция не правильная
totamon
а я хочу мира во всем мире, но не выходит пока(
miketomlin
В условии можно использовать подстановку из правила, например $1, и -d 😉
http://u75.ru/rewritecond
Но это все идиотизм. Уберите папки за пределы корня сайта.
P.S. RewriteEngine и RedirectMatch никак не связаны 😀
miketomlin
Если охота в RedirectMatch по конкретным именам делать, в регулярке можно писать так /(dir1|dir2 и т.д.)/, но тогда все равно придется лезть в .htaccess, чтобы добавить новые папки.
53ted0rdyyxt
miketomlin #:
В условии можно использовать подстановку из правила, например $1, и -d 😉
http://u75.ru/rewritecond
Но это все идиотизм. Уберите папки за пределы корня сайта.
P.S. RewriteEngine и RedirectMatch никак не связаны 😀
Не хочу. У меня будет много автоподдоменов в директории домена. Если я уберу за пределы корня сайта, то папки автоподдоменов будут селиться в общей папке, где есть ещё папки других сайтов — визуально получится мусор. Поэтому необходимо, чтобы папки автоподдоменов были в директории домена, но есть одно но. Если я добавляю папку автоподдомена в директорию домена, то эта папка будет доступна по двум адресам — как поддомен, так и раздел сайта. Поэтому мне нужна конструкция в htaccess, чтобы запретить доступ к папке, которая будет вести себя как раздел. В приведённой выше конструкции в первом посте — закрывается доступ для раздела, но для поддомена всё открыто. И мне хотелось бы папки перечислить в один ряд, а не столбиком.
miketomlin
53ted0rdyyxt #: Если я уберу за пределы корня сайта, то папки автоподдоменов будут селиться в общей папке, где есть ещё папки других сайтов — визуально получится мусор.
Можно в «общей папке» разместить только одну доп. папку с похожим на имя корня проекта именем, и внутри нее размещать папки поддоменов. Но лучше сделать корень проекта на один уровень глубже. Или даже на два, например у нас на паркинге используется такая структура:
parking/_add/domain1.com – корневой каталог первого припаркованного домена;
parking/_add/domain2.com – корневой каталог второго припаркованного домена;
parking/_add/localhost – каталог, указанный в качестве корня проекта.
SeVlad
miketomlin #: Можно в «общей папке» разместить только одну доп. папку
Я подозреваю что у ТСа панель (ISP напр) и уже рабочий сайт на домен. Если бы домен только создавался на сервере — это было бы легко. А с рабочим можно поиметь немало разного геммора (а можно и не поиметь ;)).
miketomlin
Специально для школоты:
public/abrakadabra/domain1.com
public/abrakadabra/domain2.com
и т.д. (public – это корень).
RewriteEngine on RewriteRule ^abrakadabra/ - [NC,F]
Наверно, по аналогии можно и Redirect 403 использовать.
miketomlin
SeVlad #: Я подозреваю что у ТСа панель (ISP напр) и уже рабочий сайт на домен.
Так вариант с одной доп. папкой в «общей папке» как раз для таких ленивых. Сам по себе этот вариант один из самых идиотских. Чаще всего в CPanel’и используется.
P.S. Там еще нужно смотреть, как используются эти скрытые папки. Если в них выполняется рерайт, то это проблема (в общей папке что ли размещать .htaccess?).
SeVlad
miketomlin #: Специально для школоты:
Давай я попробую пояснить как я понял.
в public/abrakadabra/ — находится сайт domain.com
в public/abrakadabra/sub находится сайт sub1.domain.com
в public/abrakadabra/sub2 находится сайт sub2.domain.com
Теперь внимание! Сайт domain.com имеет свои каталоги: public/abrakadabra/admin/, public/abrakadabra/js/, public/abrakadabra/css и тд. (Я не утверждаю, я допускаю). Поэтому ТС хочет явно указать какие подкаталоги закрыть.
Но перечитав старпост у меня возник когнитивный диссонанс — какой смысл в поддменах если запрещать к ним доступ? Кто-то может пояснить?
miketomlin
SeVlad #: в public/abrakadabra/ — находится сайт domain.com
Не, я там дописал, что корень – public (используйте любое/имеющееся имя).
abrakadabra – папка со сложным названием, которую трудно обнаружить, а уже в ней папки доп. доменов. Типа бутылочное горлышко: через одну папку блокируем доступ ко многим.
P.S. Для блокировки не обязательно использовать сложное название папки.
53ted0rdyyxt
Если в корневой папке домена находится подпапка с файлами и мы к этой подпапке с файлами хотим закрыть доступ, то в файле .htaccess нужно прописать следующую команду:
Например хотим закрыть доступ к папке 1
RewriteEngine on
RedirectMatch 403 ^/папка1/.*$
А если мы хотим закрыть доступ ещё и к папке 2, то нужно написать следующее:
RewriteEngine on
RedirectMatch 403 ^/папка1/.*$
RedirectMatch 403 ^/папка2/.*$
Но я не хочу создавать новые строки RedirectMatch 403
Я хочу в одной строке RedirectMatch 403 перечислять все папки, а как их перечислить не знаю. Типо так:
RewriteEngine on
RedirectMatch 403 ^/папка1, папка2/.*$ — но эта конструкция не правильная
totamon
miketomlin
В условии можно использовать подстановку из правила, например $1, и -d 😉
http://u75.ru/rewritecond
Но это все идиотизм. Уберите папки за пределы корня сайта.
P.S. RewriteEngine и RedirectMatch никак не связаны 😀
miketomlin
53ted0rdyyxt
В условии можно использовать подстановку из правила, например $1, и -d 😉
http://u75.ru/rewritecond
Но это все идиотизм. Уберите папки за пределы корня сайта.
P.S. RewriteEngine и RedirectMatch никак не связаны 😀
Не хочу. У меня будет много автоподдоменов в директории домена. Если я уберу за пределы корня сайта, то папки автоподдоменов будут селиться в общей папке, где есть ещё папки других сайтов — визуально получится мусор. Поэтому необходимо, чтобы папки автоподдоменов были в директории домена, но есть одно но. Если я добавляю папку автоподдомена в директорию домена, то эта папка будет доступна по двум адресам — как поддомен, так и раздел сайта. Поэтому мне нужна конструкция в htaccess, чтобы запретить доступ к папке, которая будет вести себя как раздел. В приведённой выше конструкции в первом посте — закрывается доступ для раздела, но для поддомена всё открыто. И мне хотелось бы папки перечислить в один ряд, а не столбиком.
miketomlin
Если я уберу за пределы корня сайта, то папки автоподдоменов будут селиться в общей папке, где есть ещё папки других сайтов — визуально получится мусор.
Ну, понятно: папки сайтов == корневые папки этих сайтов. Школота 😀
Можно в «общей папке» разместить только одну доп. папку с похожим на имя корня проекта именем, и внутри нее размещать папки поддоменов. Но лучше сделать корень проекта на один уровень глубже. Или даже на два, например у нас на паркинге используется такая структура:
parking/_add/domain1.com – корневой каталог первого припаркованного домена;
parking/_add/domain2.com – корневой каталог второго припаркованного домена;
parking/_add/localhost – каталог, указанный в качестве корня проекта.
SeVlad
Можно в «общей папке» разместить только одну доп. папку
Я подозреваю что у ТСа панель (ISP напр) и уже рабочий сайт на домен. Если бы домен только создавался на сервере — это было бы легко. А с рабочим можно поиметь немало разного геммора (а можно и не поиметь ;)).
miketomlin
Специально для школоты:
public/abrakadabra/domain1.com
public/abrakadabra/domain2.com
и т.д. (public – это корень).
Наверно, по аналогии можно и Redirect 403 использовать.
miketomlin
Я подозреваю что у ТСа панель (ISP напр) и уже рабочий сайт на домен.
Так вариант с одной доп. папкой в «общей папке» как раз для таких ленивых. Сам по себе этот вариант один из самых идиотских. Чаще всего в CPanel’и используется.
P.S. Там еще нужно смотреть, как используются эти скрытые папки. Если в них выполняется рерайт, то это проблема (в общей папке что ли размещать .htaccess?).
SeVlad
Специально для школоты:
Давай я попробую пояснить как я понял.
в public/abrakadabra/ — находится сайт domain.com
в public/abrakadabra/sub находится сайт sub1.domain.com
в public/abrakadabra/sub2 находится сайт sub2.domain.com
Теперь внимание! Сайт domain.com имеет свои каталоги: public/abrakadabra/admin/, public/abrakadabra/js/, public/abrakadabra/css и тд. (Я не утверждаю, я допускаю). Поэтому ТС хочет явно указать какие подкаталоги закрыть.
Но перечитав старпост у меня возник когнитивный диссонанс — какой смысл в поддменах если запрещать к ним доступ? Кто-то может пояснить?
miketomlin
в public/abrakadabra/ — находится сайт domain.com
Не, я там дописал, что корень – public (используйте любое/имеющееся имя).
abrakadabra – папка со сложным названием, которую трудно обнаружить, а уже в ней папки доп. доменов. Типа бутылочное горлышко: через одну папку блокируем доступ ко многим.
P.S. Для блокировки не обязательно использовать сложное название папки.