Проблема включения Mod_rewrite с CSS - PullRequest
2 голосов
/ 22 июня 2011

Я новичок в mod_rewrite.

У меня есть эта страница profiles.php? Page = XXX

Я пытался переместить его на более дружественный URL / cars / XXX/

RewriteEngine on
RewriteRule ^cars/([^/]+)/?$ profiles.php?page=$1 [L]

проблема в том, что когда я включаю стиль

<link href="./css/style.css" rel="stylesheet" type="text/css" />

, он не работает,

<link href="./../../css/style.css" rel="stylesheet" type="text/css" />

работает нормально, но не будет работать с profile.php? Carname= XXX

почему это происходит?как я могу это исправить

Примечание:

У меня есть небольшой скрипт, который определяет базовый адрес веб-сайта путем подсчета числа /

global $base_addr;
$s=substr_count($_SERVER['SCRIPT_NAME'],"/",2)-1;
$base_addr=".";
if($s > 0)$base_addr.=str_repeat("/..",$s);
require_once($base_addr.'class/xxx.php');
echo "<link href='$Base_addr/css/style.css' rel='stylesheet' type='text/css' />";

В этом коде require_once будет работать отлично, только html hrefs - моя проблема, любое решение для этого

Ответы [ 2 ]

4 голосов
/ 22 июня 2011

Попробуйте использовать абсолютные URL-адреса (относительно корня домена):

<link href="/path/to/css/style.css" rel="stylesheet" type="text/css" />

/path/to/css/style.css совпадает с http://www.domain.com/path/to/css/style.css

Таким образом, это не зависит от числакосых черт в вашем URL.

1 голос
/ 21 ноября 2013

Я думаю, что это работает лучше.

<base href="/" />  

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

<base href="www.url.org/" /> 
<base href="www.url.org/directory/" /> 
...