Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

пути и адреса к файлам при использовании mod_rewrite

312
10 октября 2007 года
dead_star
392 / / 26.11.2006
Я подразумеваю пути обращения к файлам - прикрепление css, js, картинок и тд
У меня с этим возникли некоторые сложности при работе с mod_rewrite

С прикреплением/include файлов управлеия проблем не возникает
Я использую серверную переменную $_SERVER['DOCUMENT_ROOT']; и прикрепляю файлу с отсчетом пути от корня диска

так выглядит мой .htaccess
Код:
<IfModule mod_rewrite.so>
    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{DOCUMENT_ROOT}/$1 !-f
    RewriteRule ^(.*)$ page.php [L]
</IfModule>


<FilesMatch "^([^\.]+)$">
    ForceType application/x-httpd-php
</FilesMatch>

<Ifmodule mod_php5.c>
    php_flag register_globals off
    php_value auto_prepend_file "E:/sites/mydomain.ru/www/inc/common.php"
</Ifmodule>


так common.php
Код:
<?
error_reporting(1);
require_once('config.inc');

header("Content-Type: text/html; charset=windows-1251");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

include_once($DocRoot.'/inc/modules/error.php');
include_once($DocRoot.'/inc/modules/help.php');
include_once($DocRoot.'/inc/modules/content.php');
?>


и в фыйле page.php призвожу парсинг ссылки
Код:
<?php
if ($_SERVER['REQUEST_URI'] == '/'){
    include($DocRoot."/in_sql/index.php");
    $TEMPLATE = "intro";
} else {
    $par = preg_split("/\//", $_SERVER['REQUEST_URI']);
    if (is_file($DocRoot."/in_sql/".$par[1].".php")){
        include($DocRoot."/in_sql/".$par[1].".php");
    } else {
        header("Location: /");
        exit();
    }
}
?>


все это сырой материал и сут не в этом
проблема в другом. возмем на пример такую вот ссылочку - http://www.mydomain.ru/news/02/06/2005/.
предполагается что эта url преабразуется например к виду http://www.mydomain.ru/news.php?d=02&m=06&y=2005
но в чем загвоздка в шаблоне прописано[HTML]
<link rel="stylesheet" href="/css/style.css" />[/HTML]
тоесть E:/sites/mydomain.ru/www/news.php
имеет ссылку на стили
E:/sites/mydomain.ru/www/css/style.css
все вродебы верно, но при нашей юрле(http://www.mydomain.ru/news/02/06/2005/) пытается прикрепить стили расположеные по адресу
E:/sites/mydomain.ru/www/news/02/06/css/style.css
естественно никаких таблиц стилей там нет

есть вариант все ссылки преобразовать в абсолютные, тоесть - http://www.mydomain.ru/css/style.css

но есть и какойто другой способ решения этой проблему. ярким примером такового решения является Википедия
я так понимаю что нужно менять сам принцып решения ЧПУ
тоесть обрабатывать URL не через php как у меня, а в файле .htaccess
изменив шаблон в строке
 
Код:
RewriteRule ^(.*)$ page.php [L]
353
10 октября 2007 года
Nixus
840 / / 04.01.2007
 
Код:
<base href="http://www.mydomain.ru/" />

Но лучше все же использовать абсоютные пути. Я так в своем движке делаю.
312
10 октября 2007 года
dead_star
392 / / 26.11.2006
Цитата: Nixus
 
Код:
<base href="http://www.mydomain.ru/" />

Но лучше все же использовать абсоютные пути. Я так в своем движке делаю.


вот в том то и вопрос
мне использовать абсолютные ссылки как например на http://www.nnm.ru/

 
Код:
<link rel="stylesheet" type="text/css" media="all" href="http://www.nnm.ru/css/default/skelet.css" />

или отнасительные как на http://ru.wikipedia.org/wiki/Заглавная_страница

ведь обрати внимание при url http://ru.wikipedia.org/wiki/Заглавная_страница в коде прописано
 
Код:
<link rel="stylesheet" type="text/css" media="print" href="/skins-1.5/common/commonPrint.css?100" />

а стили расположены по адресу http://ru.wikipedia.org/skins-1.5/common/commonPrint.css (без каталога wiki)
353
11 октября 2007 года
Nixus
840 / / 04.01.2007
Цитата: dead_star
обрати внимание при url http://ru.wikipedia.org/wiki/Заглавная_страница в коде прописано
 
Код:
<link rel="stylesheet" type="text/css" media="print" href="/skins-1.5/common/commonPrint.css?100" />

а стили расположены по адресу http://ru.wikipedia.org/skins-1.5/common/commonPrint.css (без каталога wiki)



Это делает / в начале относительного uri.

312
11 октября 2007 года
dead_star
392 / / 26.11.2006
Цитата: Nixus
Это делает / в начале относительного uri.



а, точно. не заментил. сорь.

короче
общую идею пенял
вопросов больше не имею
тему можно закрывать

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог