На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
  
> Веб-сервер apache, Материалы для ФАК
    Решил создать отдельную тему дабы не мучится с выдергиванием уже запостеных в разные треды статей. Заодно посмотрите пример оформления, таким, каким его вижу я.
    Старые посты удалю дабы не перегружать базу форума.

      Изменение конфигурационных настроек веб-сервера apache с помощью файлов .htaccess


      Оглавление.
        Что такое .htaccess, зачем и как их использовать?


        ОС: Любая
        Версия apache: Любая
        Ссылки: http://httpd.apache.org/docs-2.0/howto/htaccess.html (eng)


        Очень часто встречаются ситуации, когда нужно изменить настройки веб-сервера только для определенной папки, или, скажем, доступ к главному конфигурационному файлу веб-сервера невозможен. В таком случае веб-сервера apache предоставляет легкий и удобный способ решения подобных проблем – это .htaccess-файлы или "distributed configuration files".
        Для использования этих файлов достаточно создать plain-text файл в той директории Вашей веб-страницы, в которой это необходимо и прописать в нем необходимые директивы.
        Важно. Директивы, указанные в .htaccess-файле распространяются не только на директорию, в которой этот файл находится, но и на все поддиректории.
          Как организовать обработку ошибок на моем сайте, например при запросе на несуществующую веб-страницу (ошибка 404)?

          ОС: Любая
          Версия apache: любая
          Ссылки: http://httpd.apache.org/docs-2.0/mod/core....n#errordocument (eng)


          Создаем в корневой директории сайта файл .htaccess и вписываем туда следующие директивы:
          ExpandedWrap disabled
             
            ErrorDocument 404 /index.htm

          где /index.htm – путь к документу, который Вы хотите отобразить вместо стандартного сообщения об ошибке 404 (документ не найден) броузера.
            Как заставить веб-сервер выдавать документы только в определенной мной кодировке?

            ОС: Любая
            Версия apache: Russian Apache, Apache 2.x.x
            Ссылки: http://apache.lexa.ru/configure.html (rus)
            http://httpd.apache.org/docs-2.0/mod/mod_c...harsetsourceenc (eng)


            В корневой директории сайта создаем файл .htaccess со следующим содержимым:
            ExpandedWrap disabled
               
              CharsetDisable On
              CharsetSourceEnc windows-1251 (или, например koi8-r)

            это заставит веб-сервер, не взирая на теги, используемые в веб-страницах всегда выдавать браузеру документ в кодировке windows-1251 (или, например koi8-r).
              Как закрыть директорию паролем, оставив открытым для доступа только один файл?

              ОС: Любая
              Версия apache: Любая
              Ссылки: http://httpd.apache.org/docs/howto/auth.html (eng)

              Создаем в директории файл .htaccess со следующим содержимым:
              ExpandedWrap disabled
                 
                    require valid-user
                    Authname "Protected"
                    Authtype Basic
                    AuthUserFile "/.htpasswd"
                    <Files ИмяФайла>
                        allow from all
                        satisfy any
                    </Files>

              где значение AuthUserFile – путь к файлу пароля .htpasswd, созданного специальной утилитой htpasswd.exe (под win32, прикреплена к сообщению) или утилитой htdigest (UNIX, идет в стандартной поставке httpd), а "ИмяФайла" - путь к файлу, который Вы хотите открыть для доступа.
              Прикреплённый файлПрикреплённый файлhtpasswd.zip (11.92 Кбайт, скачиваний: 60)
                Как закрыть директорию паролем?

                ОС: Любая
                Версия apache: Любая
                Ссылки: http://httpd.apache.org/docs-2.0/howto/auth.html (eng)

                Создаем в директории, которую нужно запретить файл .htaccess со следующим содержимым:
                ExpandedWrap disabled
                   
                      require valid-user
                      Authname "DirectoryName"
                      Authtype Basic
                      AuthUserFile "/.htpasswd"

                где "DirectoryName" – сообщение, которое будет выведено пользователю браузером, а параметр директивы AuthUserFile – путь к специальному файлу паролей .htpasswd, который герерируется утилитой htpasswd.exe (под win32, прикреплена к сообщению) или утилитой htdigest (UNIX, идет в стандартной поставке httpd).
                Также .htpasswd желательно поместить в директорию, с закрытым доступом по WWW для всех. Для этого в созданную директорию помимо .htpasswd файла ложим файл .htaccess со следующим содержимым:
                ExpandedWrap disabled
                   
                  order deny,allow
                  deny from all

                Прикреплённый файлПрикреплённый файлhtpasswd.zip (11.92 Кбайт, скачиваний: 67)
                  Как на своем сайте организовать красивые ссылки типа «http://mysite.com/news/2004/12/22/», т-е организовать ссылки на несуществующие директории сайта с последующей их обработкой своим скриптом?

                  ОС: Любая
                  Версия apache: Любая (с подключенным модулем mod_rewrite)
                  Ссылки: http://httpd.apache.org/docs-2.0/misc/rewriteguide.html (eng)


                  Наиболее рациональным (но и сложным) решением является модуль mod_rewrite веб-сервера apache. Для комфортной работы с этим модулем Вам будет необходимо изучить принцип работы регулярных выражений (regular expressions), поскольку работа модуля основана именно на них.
                  Наиболее простым решением является передача всех отсылаемых методом GET параметров в Ваш скрипт с последующей их обработкой. Для этого создаем в той директории сайта, в которой мы хотим настроить редирект, файл .htaccess следующего содержания:
                  ExpandedWrap disabled
                     
                    RewriteEngine On
                    RewriteRule .*$ index.php?$0

                  данные директивы передадут в Ваш скрипт под именем index.php запрашиваемую строку, в нашем примере – «/2004/12/22/», после чего обработать ее будет делом техники.

                  Внимание! Данный модуль будет работать только в том случае, если в главном конфигурационном файле веб-сервера apache модуль mod_rewrite был подключен!
                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script Execution time: 0,1116 ]   [ 14 queries used ]   [ Generated: 24.08.19, 02:33 GMT ]