Достал свои скромные разработки на этот счет (которые, кстати, когда-то без проблем работали) и удивился (наверное вы уже догадались чему)..
Конечно, нельзя сказать что не работает, нет, но проблема все равно стоит более чем остро. Вчера бился три часа, но результат по-прежнему отсутствует.
Код файла .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z/]*)$ index.php?r=$2 [L]
регулярку сильно упростил для удобства восприятия, а собственно проблема вот в чем:
когда я делаю запрос в браузере
http://localhost/htaccess_test/param1/param2/param3/
( при этом index.php вместе с .htaccess лежат в http://localhost/htaccess_test/ )
то с массивом $_GET все в порядке, туда все заносится как надо, НО все css файлы почему-то упорно пытаются загрузиться из дериктории
http://localhost/htaccess_test/param1/param2/param3/
вместо положенной
http://localhost/htaccess_test/
Может ли кто-нибудь ответить мне почему так происходит, а еще лучше - как это можно исправить?
Спустя 2 часа, 53 минуты, 38 секунд (28.10.2010 - 13:27) inpost написал(а):
yurij__
Ты <base> ХТМЛ тега ввел?
Ты <base> ХТМЛ тега ввел?
Спустя 1 час, 42 минуты, 38 секунд (28.10.2010 - 15:10) aH6y написал(а):
yurij__
У меня тоже была такая проблемма. Решение довольно простое:
В переменную $www записываем путь до корневой папки сайта. В моём случае это выглядит так:
Это если Ваш сайт находиться по адресу: localhost/wars/
Затем просто вставляем $www перед файлом. И у нас идёт подключения начиная от корневой папки.
У меня тоже была такая проблемма. Решение довольно простое:
В переменную $www записываем путь до корневой папки сайта. В моём случае это выглядит так:
$www = 'http://'. $_SERVER['HTTP_HOST'] .'/wars/';
Это если Ваш сайт находиться по адресу: localhost/wars/
Затем просто вставляем $www перед файлом. И у нас идёт подключения начиная от корневой папки.
<link href="<?php echo $www;?>blocks.css" rel="stylesheet" type="text/css">
<link href="<?php echo $www;?>style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="<?php echo $www;?>scripts.js"></script>
Спустя 23 минуты, 4 секунды (28.10.2010 - 15:33) Guest написал(а):
потому что адрес
/param1/param2/param3/style.css
не подходит под маску [a-zA-Z/]*
/param1/param2/param3/style.css
не подходит под маску [a-zA-Z/]*
Спустя 3 минуты (28.10.2010 - 15:36) inpost написал(а):
aH6y
Тут ставишь <base> и ссылки на любые файлы относительно корневой страницы.
Тут ставишь <base> и ссылки на любые файлы относительно корневой страницы.
Спустя 20 минут, 46 секунд (28.10.2010 - 15:57) yurij__ написал(а):
да, действительно легче смотреть в сторону абсолютных адресов.
Но меня по прежнему мучает вопрос, почему же строки
не отсекают запросы к существующим файлам. Видать я не до конца разобрался с этой темой.
Но меня по прежнему мучает вопрос, почему же строки
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
не отсекают запросы к существующим файлам. Видать я не до конца разобрался с этой темой.
Спустя 1 час, 13 минут, 57 секунд (28.10.2010 - 17:11) aH6y написал(а):
inpost
Мой вариант аналогичен.
Что предпочтительнее использовать мой вариант иль тег base?
В моём варианте сервер сам прописывает путь.
В base нужно прописывать
Мой вариант аналогичен.
Что предпочтительнее использовать мой вариант иль тег base?
В моём варианте сервер сам прописывает путь.
В base нужно прописывать
Спустя 8 минут, 56 секунд (28.10.2010 - 17:20) inpost написал(а):
<base href="http://<?php echo $_SERVER['SERVER_NAME']; ?>"> - вот и всё, теперь всё это делается сервером. Мне нравится ссылки давать с корневого каталога, каждому своё
Спустя 1 час, 39 минут, 25 секунд (28.10.2010 - 18:59) aH6y написал(а):
inpost
Точно.
Точно.
Спустя 1 день, 2 часа, 23 минуты, 58 секунд (29.10.2010 - 21:23) yurij__ написал(а):
Мне <base> тоже кажется удобней. Не требуется вписывать wwwpath каждый раз перед именем css, js или картинки. один раз указал в head и забыл. Хотя способ с wwwpath тоже достойный вариант, спасибо всем за советы.