mod_rewrite и CSS - PullRequest
       24

mod_rewrite и CSS

2 голосов
/ 15 февраля 2009

Я использую mod_rewrite, чтобы изменить все URL на сайте. Пример: http://www.site.com/about/ становится http://www.site.com/?action=about (не волнуйтесь, у меня хорошая дружеская проверка здравомыслия). Проблема в том, что для всего, кроме http://www.site.com/ таблица стилей CSS не загружается. Я предполагаю, что это потому, что он ищет таблицу стилей в /about/content/style.css вместо /content/style.css. Как мне убедиться, что он находит нужную таблицу стилей?

Вот мой код на всякий случай. .htaccess выглядит так:

RewriteEngine on
RewriteRule ^news/([0-9]+)/?$ /?action=news&start=$1 [L]
RewriteRule ^news/?$ /?action=news&start=0 [L]
RewriteRule ^(about|contact|man|home|download)/?$ /?action=$1 [L]

Они все перенаправляют на index.php, который начинается следующим образом:

<html>
  <head>
    ...
    <link rel="stylesheet" href="content/style.css" type="text/css" />
  </head>
  <body>
    ...
  </body>
</html>

Ответы [ 3 ]

6 голосов
/ 15 февраля 2009

Попробуйте это.

<link rel="stylesheet" href="/content/style.css" type="text/css" />
3 голосов
/ 15 февраля 2009

Почему бы просто не использовать абсолютный URI для вашего файла CSS? т.е. /content/style.css. Спасает головные боли, как это.

1 голос
/ 15 февраля 2009

Другим решением будет установка базового URI с использованием HTML-элемента BASE:

<base href="/" />

Таким образом, относительные URI разрешаются из базового пути URI /, а не пути URI текущего ресурса (в вашем случае /about/).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...