За последние 24 часа нас посетили 17795 программистов и 1651 робот. Сейчас ищут 1252 программиста ...

phpBB, Twilight CMS и .htaccess

Тема в разделе "Вопросы от блондинок", создана пользователем mxm317, 20 фев 2008.

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

    mxm317 Активный пользователь

    С нами с:
    10 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    _moscow
    //надеюсь не ошибся разделов :D

    Вопрос такой.
    На сайт поставили Twilight CMS.
    Теперь нужно прикрутить туда форум на phpBB.
    Все это получилось (хотя установка и развертка цмс весьма нетривиально :( )

    НО! Есть одна сложность. Twilight не дает доступ на форум по ссылке вида domen.ru/newforum, т.е. система ищет эту ссылку у себя в системе, ненаходит ее и говорит, что мол такого нет нихрена. Если же вводить конечный пусть, т.е. domen.ru/newforum/index.php, то все работает как надо, отображается главная страница форума.
    Служба поддержки TWL отказывается сказать, что именно нужно сделать, ссылаясь, что редактируйте файлик .htaccess, а как именно, сами должны знать (что конечно не очень коррекстно с их стороны...).
    Одна надежда на этот форум. Скажите пожалуйста, что нужно добавить в

    Код (Text):
    1. Options -Indexes -Includes
    2. RemoveHandler .html
    3. RemoveType .html
    4. AddDefaultCharset windows-1251
    5.  
    6. # START OF BLOCK 1: закомментировать его, если на хостинге нет mod_rewrite
    7. # поменять cgi-bin -> нужное название
    8. RewriteEngine On
    9.  
    10. # блокировка методов TRACE и TRACK (security issue)
    11. RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    12. RewriteRule .* - [F]
    13.  
    14. RewriteRule ^$          /cgi-bin/get.cgi        [L]
    15. RewriteCond %{REQUEST_FILENAME}     -f
    16. RewriteRule ^(.+)$              $1          [L]
    17. RewriteCond %{REQUEST_FILENAME}/index.html  -f             
    18. RewriteRule ^(.+)$              $1/index.html       [L]
    19. RewriteRule !^/cgi-bin/get\.cgi.*   -               [C]
    20. RewriteRule ([^/].*)        /cgi-bin/get.cgi?alias=$1
    21. # END OF BLOCK 1
    22.  
    23. # нумерация с головы поезда
    24. #  1. корень перенаправляем на /cgi-bin/get.cgi
    25. #  2. если запрашивается существующий файл -
    26. #  3. отдаем его
    27. #  4. если существующая директория и если в ней есть index.html
    28. #  5. переходим на этот index.html
    29. #  6. если запрашивается не /cgi-bin/get.cgi с параметрами - тогда
    30. #  7. отдаем /cgi-bin/get.cgi как параметр то, что запрашивается
    31. #     в результате если было /news то получится get.cgi?alias=news, а если
    32. #     /news/default, то парсер сам разберется что ему делать и все сделает правильно
    33.  
    34.  
    35. # раскомментировать, если на хостинге нет mod_rewrite
    36. # но не использовать тогда внутри шаблонов ссылок вида /alias/template,
    37. # например на css и js файлы.
    38.  
    39. #ErrorDocument 404 /cgi-bin/get.cgi
    40. #ErrorDocument 403 /cgi-bin/get.cgi
    41.  
    42.  
    43. # блокируем попытки скачать старые версии скриптов если вдруг они есть на сервере
    44. <FilesMatch "\.bak$">
    45.     Deny from all
    46. </FilesMatch>
    47. <FilesMatch "\.old$">
    48.     Deny from all
    49. </FilesMatch>
    50.  
    51. # блокируем попытки скачать aliases.dat
    52. <FilesMatch "^aliases\.dat$">
    53.     Deny from all
    54. </FilesMatch>
    чтобы по ссылке domen.ru/newforum отображалась главная страница phpbb.

    Спасибо)
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ну и добавь правило, что если такой путь, то мол все... пипец. зкончим проверки.
    в чем сложность-то?
     
  3. mxm317

    mxm317 Активный пользователь

    С нами с:
    10 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    _moscow
    440Hz что именно нужно написать? в программировании я весьма и весьма посредственно разбираюсь.

    я пробовал изменить расширение .html на .php - не сработало
    пробовал
    Код (Text):
    1. RewriteCond   %{REQUEST_FILENAME}/index.html   -f            
    2. RewriteRule   ^(.+)$            $1/index.html      [L]
    изменить на свои директории. не получилось
    а по поиску в сети только redirect нашел, а он весь сайт перекидывает ((
     
  4. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    вам надо написать правило по которому когда встретиться такой запрос что б mod_rewrite прекратил работу.
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    mxm317

    я бы поставил после
    RewriteCond %{REQUEST_FILENAME} -f

    RewriteCond %{REQUEST_FILENAME} !-d

    и не парился
    =)

    это означает что если такая директория существкет апач перейдет туда, а не будет передавать управление дальше.
     
  7. mxm317

    mxm317 Активный пользователь

    С нами с:
    10 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    _moscow
    смысл-то я понимаю ))
    но как это будет выглядеть.

    лан, попробую изучить линк RomanBush'a

    пасибо
     
  8. mxm317

    mxm317 Активный пользователь

    С нами с:
    10 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    _moscow
    Вернулся к этому вопросу.
    Смог написать вот такую штуку:

    Код (Text):
    1. RewriteCond %{REQUEST_FILENAME}/phpforum    !-d
    2. RewriteRule ^(.+)$              $1/index.php        [L]
    но при запросе domen.ru/phpforum или при domen.ru/phpforum получаю 500 ошибку
    если вводить полный путь domen.ru/phpforum/index.php то страничка отображается нормально.
     
  9. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Замени
    Код (Text):
    1. RewriteCond   %{REQUEST_FILENAME}      -f
    2. RewriteRule   ^(.+)$            $1         [L]
    на
    Код (Text):
    1. RewriteCond   %{REQUEST_FILENAME}      -f
    2. RewriteCond   %{REQUEST_FILENAME}      -d
    3. RewriteRule   ^(.+)$            $1         [L]
     
  10. mxm317

    mxm317 Активный пользователь

    С нами с:
    10 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    _moscow
    lexa спасибо, но не помогло(
    Когда ввел
    Код (Text):
    1. RewriteCond   %{REQUEST_FILENAME}      -d
    снова получил 500 ошибку.
    потом подправил на
    Код (Text):
    1. RewriteCond   %{REQUEST_FILENAME}      !-d
    сайт заработал, но путь domen.ru/phpforum и domen.ru/phpforum/ снова передается на управление twl-cms (
     
  11. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Восклицательный знак означает отрицание.


    Попробуй так:
    Код (Text):
    1. RewriteCond %{REQUEST_FILENAME} !-f
    2. RewriteCond %{REQUEST_FILENAME} !-d
    3. RewriteRule ^(.+)$ $1 [L]
    Без табов, а с жёсткими пробелами.

    А вообще-то тебе лучше на форум Twilight обратиться.
     
  12. mxm317

    mxm317 Активный пользователь

    С нами с:
    10 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Адрес:
    _moscow
    так тоже не проходит(

    а там админы жадные. я их вообще не понимаю http://twl.ru/forum/?forum_id=4EC448FD3 ... d61662f36e
    вот наш диалог.

    блин, и знакомых прогеров, кто бы мог помоч с этим нет.
     
  13. Anonymous

    Anonymous Guest

    Служба поддержки дала полный, замечательный ответ. Тема закрыта.
     
  14. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Даже более полный, чем положено по ихнему регламенту.
    Дружелюбные и терпеливые люди.
     
Статус темы:
Закрыта.