Проблема с путями при редиректе htaccess и ЧПУ
Файл socialnoe.php использует tpl-шаблон.
Есть файл socialnoe.php, он ответственен за выдачу посетителю информации.
Чтобы было удобнее, решил сделать friendly url.
site.ru/socialnoe/ редиректит на site.ru/socialnoe.php (выводит список регионов).
site.ru/socialnoe/jakutia/ (редиректит на site.ru/socialnoe.php?region=jakutia и выдает список городов республики Якутия)
site.ru/socialnoe/jakutia/jakutsk (редиректит на site.ru/socialnoe.php?region=jakutia&gorod=jakutsk (выводит форму для подсчета в городе Якутск)
То есть в данном случае папок /jakutia/jakutsk и /jakutia/ (и соответственно html-файлов) - физически не существует, а html-страницу отдает файл site.ru/socialnoe.php, получая соответствующие параметры через редирект.
Кое-что начало получаться
при обращении
http://localhost/house/socialnoe/jakutsk/jatanКод htaccess такой
RewriteEngine on
RewriteRule ^socialnoe/?$ socialnoe1.php?region=$1 [NC,L]
RewriteRule ^socialnoe/([a-z]+)/?$ socialnoe1.php?region=$1 [NC,L]
RewriteRule ^socialnoe/([a-z]+)/([a-z]+)/?$ socialnoe1.php?region=$1&gorod=$2 [NC,L]
выводит в php-скрипте $_GET['region']."_".$_GET['gorod'] вот это jakutsk_jatan
вроде бы всё работает, но одно но: css не подключается в tpl-шаблоне.
Я понял почему css не подключается в tpl-шаблоне.
К примеру, я вводу в браузере одно из трех
http://localhost/house/socialnoe/jakutsk/jatan/http://localhost/house/socialnoe/jakutsk/http://localhost/house/socialnoe/Соответственно htaccess (указан выше) редиректит на socialnoe1.php,
в php-скрипте код $index = file_get_contents("index.tpl");
загружает шаблон.
В index.tpl код <link rel="stylesheet" type="text/css" href="style.css" />
При
http://localhost/house/socialnoe/jakutsk/jatan/в index.tpl считается что style.css лежит в
http://localhost/house/socialnoe/jakutsk/jatan/style.cssно на самом деле он лежит в
http://localhost/house/style.cssВышел из этой ситуации таким образом:
просто прописал в index.tpl
<link rel="stylesheet" type="text/css" href="../../../style.css" />
<link rel="stylesheet" type="text/css" href="../../style.css" />
<link rel="stylesheet" type="text/css" href="../style.css" />
<link rel="stylesheet" type="text/css" href="style.css" />
или можно прописать <link rel="stylesheet" type="text/css" href="http://localhost/house/style.css" />
Таким образом, одно из css всегда "подхватится".
Но вопрос: как сделать красивое решение, а не этот костыль?
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|
Сообщение отредактировал guner - 18.11.2013, 23:22