вопрос
День добрый. Возникла необходимость сделать следующуу:
Есть сайт, необходимо запретить доступ ко всем страницам, в урле которых нет слеша (кроме первого после домена), например, site.ru/data - сюда запретить, site.ru/data/1.php - сюда разрешить.
Как это можно сделать? Подозреваю, что при помощи конструкции
Есть сайт, необходимо запретить доступ ко всем страницам, в урле которых нет слеша (кроме первого после домена), например, site.ru/data - сюда запретить, site.ru/data/1.php - сюда разрешить.
Как это можно сделать? Подозреваю, что при помощи конструкции
<Files ~ "регулярное выражение">Однако в регулярных выражениях я не силен, поэтому прошу помощи. Спасибо
Deny from all
</Files>
Открываешь .htaccess и перелопачиваешь все строки :)
Например первая строка со слешем:
Тут код (/?)+, вопросительный знак означает что слеш может быть, а может и не быть, а плюсик то что указанное в скобках должно повторяться 1 и более раз. Оба варианта ведут на одну страницу.
Если везде убирать этот слеш, то надо убедиться, что нигде в движке не прописывается адрес со слешем в конце иначе будет много пустых (404) страниц.
Например первая строка со слешем:
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 [L]
Тут код (/?)+, вопросительный знак означает что слеш может быть, а может и не быть, а плюсик то что указанное в скобках должно повторяться 1 и более раз. Оба варианта ведут на одну страницу.
Если везде убирать этот слеш, то надо убедиться, что нигде в движке не прописывается адрес со слешем в конце иначе будет много пустых (404) страниц.