RewriteEngine On и функция PHP - include

Тема в разделе "PHP", создана пользователем kozax89, 14 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Добавил, в .htacces такое:

    RewriteEngine on
    RewriteRule ^(program+)/([0-9]+).html view_program.php?id=1

    должен c URL http://superprograms.ru/view_program.php?id=1 - делать следующий - http://superprograms.ru/program/1.html

    Все вроде работает - но почемуто, не работает функция include и файл CSS на страничке под URL http://superprograms.ru/program/1.html

    Кто знает почему и как сделать чтоб заработал?
     
  2. Kloster

    Kloster

    Регистр.:
    22 июн 2009
    Сообщения:
    216
    Симпатии:
    12
    Что конкретно с инклюдом, трудно сказать, не зная, что именно инклюдится, т.к. он не зависит от реврайта, разве что адреса берутся из адресной строки...
    Но вот к самому правилу возникли вопросы:
    (program+) - здесь зачем скобки и + ? "program" может повторяться несколько раз? Может быть убрать и скобки и плюс?
    .html - точку надо экранировать
    ?id=1 - здесь не нужно ли брать число из [0-9]?
    Вот мне видится таким правило:
    Код:
    RewriteRule ^program/([0-9]+)\.html view_program.php?id=$1
    
     
    kozax89 нравится это.
  3. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    судя по всему просто пути неправильно проставлены без реврайта было без каталога, а теперь он добавился
    а css присоединен
     
    kozax89 нравится это.
  4. IgVan

    IgVan

    Регистр.:
    8 май 2008
    Сообщения:
    212
    Симпатии:
    54
    Похоже что проблема в путях. Смотри, у тебя появился еще один каталог в урле, а в коде скорее всего используешь относительные пути.
     
    kozax89 нравится это.
  5. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    что за бред ?

    пути -- только если ты используешь в инклюдах что то из урла
    в других случаях инклюд происходит в view_program.php

    на счет css - тут да, советую прописать абсолютный адрес от корня сайта
     
    kozax89 нравится это.
  6. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Всем спасибо, все помогли ))

    Kloster специальное спасибо, теперь я наконец понял зачем там + и зачем скобки )) А то нигде понятно не описан синтаксис...

    include - и вправду нормально работает - все дело было в ссылках к картинкам и css - их надо прописывать полностью вместе с http:// а не относительно - чтобы работало... Столько переписывать теперь ))

    Еще раз спасибо всем ))

    А не подскажите как быть с URL типа http://superprograms.ru/view_progra...8%F0%EE%E2%E0%ED%E8%E5&cat=administrating.php

    - хотелось бы чтобы финальный URL выглядел типа http://superprograms.ru/programs/менеджеры файлов.html

    Тоесть чтобы прятал переменные &category=%E0%E4%EC%E8%ED%E8%F1%F2%F0%E8%F0%EE%E2%E0%ED%E8%E5&cat=administrating.php - а менял часть view_programs.php?subcategory=%EC%E5%ED%E5%E4%E6%E5%F0%FB%20%F4%E0%E9%EB%EE%E2

    пробовал RewriteRule ^programs/(.*)\.html view_programs.php?subcategory=$%E4%F0%F3%E3%E8%E5%20%EC%F3%EB%FC%F2%E8%EC%E5%E4%E8%E0%EB%FC%ED%F%E5%20%EF%F0%EE%E3%F0%E0%EC%EC%FB&category=%EC%F3%EB%FC%F2%E8%EC%E5%E4%E8%E0&cat=multimedia.php

    Но страница после загрузки меняеться на http://superprograms.ru/programs/менеджеры файлов.html и работает так как будто не получает переменную $subcategory

    Поможете? ))
     
  7. Kloster

    Kloster

    Регистр.:
    22 июн 2009
    Сообщения:
    216
    Симпатии:
    12
    Ну, я бы не стал спешить все переписывать, можно и относительными путями обойтись, главное - правильно их написать :)
    У меня на больших проектах css могут лежать в разных папках и картинки в разных, и все работает. Пишу полные пути только если картинку надо с другого сайта дернуть :)
    Но это уже как кому нравится.
    ты хочешь в адресе кириллицу вставить? Очень не советую.
     
  8. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    А есть тогда какой нибудь способ зашифровать аот это: %E0%E4%EC%E8%ED%E8%F1%F2%F0%E8%F0%EE%E2%E0%ED%E8%E5& например в ряд знаков типа 162323423? Например средствами PHP?
     
  9. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    тут subcategory=$%E4%F0%F ненужный знак $ наверное из-за этого проблема.

    а может отказатся от cat=multimedia.php и инклудить файлы по переменной category в скрипте включить проверку какая категория такая и cat, тогда не надо будет прописывать все названия в htaccess например была бы ссылка

    -http://superprograms.ru/Администрирование/менеджеры файлов.html

    RewriteRule ^(.*)/(.*)\.html view_programs.php?subcategory=$1&category=$2 [QSA,L]
     
  10. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    не могу отказаться от cat=multimedia.php так как нужно это для одного из элементов навигации без которого никуда не деться... и еще у меня вместо пробела ставит %20 ((
     
Статус темы:
Закрыта.