Проблема с подкаталогом .htacces css / js - PullRequest
3 голосов
/ 08 ноября 2011

Я пытаюсь внести некоторые изменения в файл .htaccess сайта.Я искал по всей сети, но не могу найти четкого решения для этого, или есть вероятность, что я ошибся.Итак, вот мы:


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule   ^/$  /e/www/  [R]
RewriteRule ^news$ /news.php
RewriteRule ^news$ /news.php
RewriteRule ^resources$ /resources.php
RewriteRule ^lexicon$ /lexicon.php
RewriteRule ^contacts$ /contacts.php
RewriteRule ^analytics$ /analytics.php
RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)-(.*)$ /news.php?yy=$1&mm=$2&dd=$3&alias=$4
RewriteRule ^resources$ /contacts.php
RewriteRule ^articles_search$ /articles_search.php
RewriteRule ^articles_data_search$ /articles_data_search.php
RewriteRule ^profile/([0-9]+)&commit=(.*)$ /profile.php?id=$1&commit=$2
RewriteRule ^profile/(.*)&commit=(.*)$ /profile.php?alias=$1&commit=$2

В последних двух строках я пытаюсь получить результат из этого:

www.example.com/profile.php?alias=kokazani&commit=Edit

к этому:

www.example.com / profile / kokazani & commit = Edit

Проблема в том, что неверный путь к файлам css и js .Мне нужно решение или лучший подход к переписыванию правил.Я думаю, что решение, возможно, состоит в том, чтобы переписать все, как css / blabla.css, в корневой каталог / css / blabla.css, но если есть стандартное решение для этой проблемы, я хотел бы знать:)

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 08 ноября 2011

Существует 2 возможных (простых) решения:

  • Используйте абсолютные пути для ваших файлов CSS (/include/css/style.css и т. Д.)
  • Используйте элемент HTML <base>, чтобы задать правильный базовый URL-адрес для относительных URL-адресов, которые будут следовать (а не каталог документа, который был изменен Apache).
1 голос
/ 08 ноября 2011

Мой подход будет (как предполагает Истина) использовать абсолютные пути.Если это невозможно, вы можете использовать:

RewriteRule ^(.+)/css/(.*)$ /css/$2

Но имейте в виду: Это означает, что клиент (браузер) в конечном итоге получит и кэширует несколько копий одного и того же файла, потому что этоизвлекает его (насколько он может видеть) с разных путей.Поэтому вы теряете преимущество кэширования таблиц стилей на стороне клиента.

...