Использование модуля Mod_rewrite

Тема в разделе "Веб-серверы - Администрирование", создана пользователем Egorych, 19 авг 2010.

  1. Egorych

    Egorych Гость

    Имеется файл .htaccess следующего содержания:

    Options Includes +ExecCGI
    AddType text/x-server-parsed-html .html
    <Files ~ (\.pl)>
    Options ExecCGI FollowSymLinks
    </Files>

    ErrorDocument 404

    Options +FollowSymLinks +SymLinksIfOwnerMatch

    RewriteEngine On

    RewriteBase /

    RewriteRule ^bannerf(.*) /index.php?banner=$1 [L]

    RewriteRule ^banner2/place(.*) /index.php?banner=2&place=$1 [L]

    Так вот первое правило RewriteRule работает идеально. А второе отображает нужную страницу, но не предает форматирование текста (задано с помощью css) и не подгружает графику. Такое ощущение что перепутана корневая директория. Но ведь установлена RewriteBase /.

    Помогите пожалуйста, кто знает почему не работает правило №2
     
  2. Egorych

    Egorych Гость

    Извиняюсь. Никто не может помочь? Очень нужно! Абсолютно не понятная ситуация.
    Делаю сайт с помощью "Денвера" на домашнем компе. ОС Windows. Выставлял на хост там проверял такая же ерунда.
    Почему не работают правила когда передаются 2 и более значений?
     
  3. slayer

    slayer Гость

    Попробуйте не указывать RewriteBase /
    Вы ведь не используете субдиректорию ?

    Изменять RewriteBase нужно только тогда, когда ваш сайт находиться в субдиректории, или используете VirtualDocemntRoot
     
  4. Egorych

    Egorych Гость

    Наличие или отсутствие RewriteBase / ситуацию не изменило. Попробую разобраться с директивой VirtualDocemntRoot. Однако по первым же фактам ясно что настройка с помощью этой директивы происходит в конфигурационном файле httpd.conf, который на хостинге не доступен. Вот вроде есть инфа о конфигурировании виртуальных хостов в файле .htaccess. Щас буду разбираться.
     
  5. slayer

    slayer Гость

    Покажите листинг файла .htaccess
     
  6. Egorych

    Egorych Гость

    Наверху. Первое мое сообщение. RewriteBase / закомментировал.
    Кстати, не подскажите как происходит конфигурировании виртуальных хостов в файле .htaccess?
     
  7. Egorych

    Egorych Гость

    slayer, отдельное спасибо. Я разобрался что к чему.
    Во-первых slayer извините, что я не правильно понял Ваш ответ по поводу настройки виртуального хоста. Я пустился его настраивать, хотя Вы имели ввиду, что как раз его то - этого конфигурирования - как раз и не должно быть. Это я понял, когда начитался всякой мути по поводу модуля mod_vhost_alias.
    Во-вторых ошибка моя заключалась совсем в другом. Адресация в коде HTML, например, для файла css была такая:

    <link rel="stylesheet" type="text/css" href="site.css">

    То есть без указания корневого слеша. Сделав вот так:

    <link rel="stylesheet" type="text/css" href="/site.css">

    Я поймал форматирование текста. Ну и поменяв адреса у картинок и всех подгружаемых модулей у меня все получилось.

    Как гора с плеч упала!
     
  8. slayer

    slayer Гость

    Я признаюсь ...незнаю я как править в .htaccess
    но вот знаю как в site-available (.conf файлах)

    ЗЫ Очень рад за вас, жаль конечно что не помог :D
    Кстати да, /*.html это означает ,как сказал К.О корневую директорию (и поиск будет происходит в http://example.com/ здесь ! ). В случае если не указывать / то тогда, опять таки как говорит К.О поиск будет происходит в директории где лежит основной документ, который указывает src (то есть док лежит http://example.com/public/var/index.php и src к файлу css указанно как 'style.css', тогда style.css должен быть в http://example.com/public/var/style.css, ну и соответственно повторюсь, если в index.php указанно '/style.css' то style должен быть по адресу http://example.com/style.css )

    PSS Ну и устроил демагогию, понятно что ничего не понятно, прощу прощения.
     
Загрузка...

Поделиться этой страницей