Эта проблема часто возникает из-за использования относительных URL-адресов в таблицах стилей или файлах javascript и объединения его со структурой виртуального каталога.Если у вас есть переписать, как это:
RewriteRule ^articles/(.*)$ articles.php
Тогда у вас есть URL, как:
http://example.com/articles/2011/03/14/title-of-the-article
, который содержит HTML:
<link rel="stylesheet" type="text/css" href="css/general.css" />
независимо от того, еслиВаш файл artices.php
находится в корне вашего веб-каталога, браузер ничего не знает об этом, так как вопросы mod_rewrite
скрыты от браузера.Поэтому он запросит файл:
http://example.com/articles/2011/03/14/title-of-the-article/css/general.css
, который, очевидно, не существует.Поэтому я рекомендую указать URL относительно вашего веб-корня.Например:
<link rel="stylesheet" type="text/css" href="/css/general.css" />
Помните /
перед theURL.
Обратите внимание на следующее: когда ваш URL начинается с символа /
, это означает путь относительно корень веб-страницы .Посмотрите на этот пример структуру директории:
/
/index.html
/afolder
/afolder/stylesheets
/afolder/stylesheets/first.css
/afolder/stylesheets/second.css
/afolder/images
/afolder/images/a.jpg
/otherfolder
/otherfolder/something.html