2015-10-21 1 views
1

У меня есть следующая проблема:.htaccess огорчить URL, но не локальные данные, без RewriteEngine

Если я открываю свой сайт на странице example.com/foo/bar каждая таблица стилей загружается следующим образом: Источник:

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

Но мой сервер загружает этот файл как: foo/css/style.css


Теперь я хочу изменить .htaccessRewriteEngine, что это не Happ ru, однако I не хочу использовать RewriteRule, который предотвращает /css/, чтобы изменить URL!

Мои .htaccess:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)$ index.php?urlparam=$1 [NC,L] 

Заранее спасибо;)

ответ

0

Вы используете относительные пути в своих файлах css, js, images, а не в абсолютном.

Вы можете добавить это чуть ниже <head> раздела HTML вашей страницы:

<base href="/" /> 

так, что каждый относительного URL разрешен из этого базового URL, а не от URL текущей страницы.

+1

Спасибо, это было действительно полезно –

0

При переходе к example.com/foo/bar это интерпретируется как ресурс bar в каталоге /foo. Ваша разметка включает в себя css/style.css и так как она не содержит ведущих /, это означает, что папка css относится к текущему пути (то есть /foo). Вот почему вы видите поведение.

Ваши правила перезаписи не имеют ничего общего с тем, что происходит. Если вы перейдете на example.com/foo/bar/ (завершающий /), тогда он запросит example.com/foo/bar/css/style.css.

+0

Есть ли возможность остановить сценарий, действующий вот так? –

+0

Вы можете использовать абсолютный путь к вашему файлу CSS вместо относительного. –

+0

Это не возможно для меня. –

Смежные вопросы