За последние 24 часа нас посетили 15669 программистов и 1563 робота. Сейчас ищут 925 программистов ...

HTTP адреса через слеши в .htaccess (не отображается CSS)

Тема в разделе "Прочие вопросы по PHP", создана пользователем hsr, 15 окт 2014.

  1. hsr

    hsr Новичок

    С нами с:
    15 окт 2014
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток форумчане!

    Увидел одну интеерсную и удобную для себя вешь. Короткие адреса и еще через слеши в адресной строке - различных движков. Попытался сделать подобное.

    Содержимое файла .htaccess
    Код (Text):
    1. RewriteEngine On
    2. RewriteRule ^catalog$     index.php?catalog [QSA]
    3. RewriteRule ^catalogs/news$     index.php?catalog=news [QSA]
    В самом PHP файле обработка GET запроса и include:
    Код (Text):
    1. if(isset($_GET['catalog'])) {
    2.      include_once('engine/catalog.php');
    3. }
    4. if(isset($_GET['catalog']) == 'news') {
    5.       include_once('engine/news.php');
    6. }
    Все работает. Только вот CSS стили не отображаются.. Замучался уже. Помогите решить проблему.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: HTTP адреса через слеши в .htaccess (не отображается CSS

    относительные пути пропишите и все ок будет
     
  3. hsr

    hsr Новичок

    С нами с:
    15 окт 2014
    Сообщения:
    3
    Симпатии:
    0
    Re: HTTP адреса через слеши в .htaccess (не отображается CSS

    А поподробнее. Не понял ответа.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: HTTP адреса через слеши в .htaccess (не отображается CSS

    в большинстве случаев css и прочие файлы теряются в момент начала использования чпу из-за того что ссылки на них прописаны относительно документа а не корня сайта. можно каждый раз указывать что является базой ссылок, но и в этом случае легко запутаться. лучше всего всегда писать путь относительно корня сайта.

    наглядно: у вас индекс лежит в корне сайта. рядом таблица стилей. ссылка style.css. будет работать. включаем чпу, идем по адресу каталог/новости. чпу переписывают под индекс и показывают страницу. база документа каталог/новости, ищем каталог/новости/style.css - не находим.
    переписываем путь к стилю на /style.css. теперь какой-бы красивый адрес не был введен - стиль будет искаться в нужном месте.
     
  5. hsr

    hsr Новичок

    С нами с:
    15 окт 2014
    Сообщения:
    3
    Симпатии:
    0
    Re: HTTP адреса через слеши в .htaccess (не отображается CSS

    Спасибо. Разобрался. Нужно было поставить слеш(чтобы отталкивался от корня сайта, а не от текущего адреса):
    Код (Text):
    1. RewriteRule ^catalog/news$      /index.php?catalog=news [QSA]
    А прописал в стилях адрес сайта еще "//site.com/style.css".
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Re: HTTP адреса через слеши в .htaccess (не отображается CSS

    Вот это лишнее. Достаточно ставить /style.css, оставьте подстановку site.com браузеру. А то потом захотите на другой домен переехать - и проблемы будут. А работы обычно ведутся не на целевом домене.