• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы Egorych
  • Дата начала
E

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
 
E

Egorych

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

slayer

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

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

Egorych

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

Egorych

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

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">

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

Как гора с плеч упала!
 
S

slayer

Кстати, не подскажите как происходит конфигурировании виртуальных хостов в файле .htaccess?

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

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

PSS Ну и устроил демагогию, понятно что ничего не понятно, прощу прощения.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!