Скрытие папок конфигов, админки и проч.

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем blacks, 28 июл 2009.

Статус темы:
Закрыта.
  1. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    У меня в htaccess есть несколько деректив отвечающих за защиту/скрытие папок:
    Код:
    	redirect /config http://www.microsoft.com
    	redirect /wp http://www.microsoft.com
    Как улушить код добавив функцию NoCase - неважности регистра букв в запросе?
    (я не очень силен в htaccess)

    Пока гуглил изучая вопрос нашел вот еще такой пример:
    Код:
    	RewriteRule ^(login|auth) /404 [L]  # для всех файлов в этих папках
    Вот сижу "у разбитого карыта" и думаю что выбрать?

    Спасибо.
     
  2. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    Ну нечувствительность к регистру в mod_rewrite задется флагом NC в квадратных скобках.

    А приведенные примеры отличаются только тем, что первый вариант использует стандартный модуль редиректа в поставке апача (я не работал с ним, он очень простой). Второй же использует mod_rewrite. Оба этих модуля нерекомендуется использовать (хотя и возможно, для этого есть специальные бубны в mod_rewrite), поэтому лучше взять вторую строчку, немного подредактировав, приведя к соответствию первому варианту и требуемой функциональности:
    Код:
    RewriteRule ^(config|wp) http://www.microsoft.com [L,NC]
    
     
    blacks нравится это.
  3. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Большое спасибо!


    Почему эти два модуля плохи?
    Из-за того что могут создавать нагрузку на сервер... но от чего?
    Тем более если первый простой.
     
  4. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    Я немного не так выразился, прошу прощения.
    Не стоит одновременно использовать эти модули. Хотя это и допускается. (Для этого в mod_rewrite есть флаг P proxy, который позволяет вернуть на время управление в mod_alias (от которого директива Redirect), но это танцы с бубнами)

    Я предлагаю всегда использовать mod_rewrite, так как он горздо гибче mod_alias и на сегодняшний день очень часто используется (в том числе и для ЧПУ).

    Добавлено через 44 секунды
    Это из документации к mod_alias строчка.
     
    blacks нравится это.
  5. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Спасибо.
    Вот еще пара небольших уточнений(если они вас не обеспокоят:(

    1. Могу я делать несколько строк-блоков для редиректа?
    - чтоб строка не получалась слишком длинная и было лучше понимать.
    Пример:

    Код:
    RewriteRule ^(config|wp|secure) http://www.microsoft.com [L,NC]
    RewriteRule ^(zip|rar|7z) http://www.microsoft.com [L,NC]

    2 вид такой строки
    Код:
    RewriteRule ^(config|wp) /404 [L,NC]
    перенаправляет на папку 404 или на выдачу ошибки с кодом 404 ?

    Спасибо.
     
  6. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    1. да, так как Вы написали можно делать.
    также можно делать к каждой записи RewriteRule по несколько записей RewriteCond задающих условия для этой (одной) записи.
    2. такая строка перенаправит на папку 404 с кодом 200 OK. Если хочется сделать код 404, то нужно написать так:
    Код:
    RewriteRule ^(config|wp) - [R=404,L,NC]
    или так:
    Код:
    RewriteRule ^(config|wp) /404 [R=404,L,NC]
    Если честно, то нужно попробовать, что даст нужный результат. (В любом случае должен быть задан ErrorDocument 404 /404/)
     
    blacks нравится это.
  7. blacks

    blacks

    Регистр.:
    26 сен 2008
    Сообщения:
    391
    Симпатии:
    24
    Спасибо.
    Ближайшие время проверю.
     
  8. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    124
    я тут подумал, надо делать первый вариант. тогда преобразования вообще не будет, а будет просто 404й статус.
     
Статус темы:
Закрыта.