Стиль не применяется при использовании htaccess - PullRequest
2 голосов
/ 16 марта 2011



Я хочу показать URL в зависимости от выбранной страны, поэтому я использовал htaccess для перенаправления URL в зависимости от выбранной страны.Например, я хочу, чтобы URL был таким: www.example.com/us/index.html

У меня есть мои файлы, как показано ниже,

public_html/includes/style.css  
public_html/index.php  

в index.php Я связал таблицу стилей как«../includes/style.css»

, когда я попробовал www.example.com стиль, примененный правильно.как только пользователь выберет страну в index.php, URL будет перенаправлен как www.example.com/us/index.html.Но для этой перенаправленной страницы стиль был применен неправильно.

У меня есть следующее условие в .htaccess для перенаправления страницы,

RewriteRule ^([^/]+)/([^\.]+)\.html$ index.php?cnt=$1 [L]  

Спасибо.

Ответы [ 4 ]

2 голосов
/ 16 марта 2011

При посещении www.example.com/us/index.html вычисляемым URL style.css является www.example.com/us/includes/style.css, который явно не существует.

Поэтому, в зависимости от ваших намерений, либо

  • используйте абсолютную ссылку на таблицу стилей, например "/include/style.css"
  • , создайте правило перезаписи htaccess, чтобы исправитьurl
  • создание 1 таблицы стилей для каждой страны
1 голос
/ 17 марта 2011


Спасибо за вашу помощь. Это код, который я использовал для решения проблемы:

$base = $_SERVER['REQUEST_URI'];  
$base=parse_url($base);  
$parts=explode("/",$base['path']);  
$path=$parts[1];  
$home="/".$path;  

<link rel='stylesheet' type='text/css' href='$home/includes/style.css'/>

Однако это сработало для меня, только когда я запустил это в localhost, потому что я поместил свои файлы в home/localhost/example/
Но когда я положил его на сервер, я снова столкнулся с проблемой стиля. поэтому я просто изменил переменную home следующим образом:

$home="";

так что теперь путь становится,

/includes/style.css 

вместо

//includes/style.css
1 голос
/ 16 марта 2011

это должно быть /includes/style.css, а не ../include/style.css, вот и все.
всегда используйте абсолютный путь.

1 голос
/ 16 марта 2011

Если вы включаете ваши CSS-файлы с относительными путями, ваш CSS вернет 404, когда ваш URL выходит за пределы исходного домашнего каталога (или, кажется, выходит, когда используется .htaccess)

Решением этой проблемы является использование абсолютного пути при включении вашей CSS

вместо ../includes/style.css

Использование <?php echo $webroot; ?>/includes/style.css

$webroot здесь полный путь к корню вашего проекта

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