使用htaccess时未应用样式

时间:2011-03-16 05:26:48

标签: php css .htaccess redirect



我想根据所选国家/地区显示网址,因此我根据所选国家/地区使用htaccess重定向网址。例如,我希望网址如下: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中选择了国家/地区,网址将被重定向为www.example.com/us/index.html。但是对于此重定向页面,样式未正确应用。

我在.htaccess中遵循了重定向页面的条件,

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

感谢。

4 个答案:

答案 0 :(得分:2)

访问www.example.com/us/index.html时,style.css计算的网址是www.example.com/us/includes/style.css,显然不存在。

因此,根据您的意图,

  • 使用样式表的绝对链接,例如“/includes/style.css”
  • 创建一个htaccess重写规则来修复网址
  • 每个国家/地区创建一个样式表

答案 1 :(得分:1)

如果您将CSS文件包含在相对路径中,那么当您的URL超出初始主目录时(或者在使用.htaccess时似乎移出),CSS将返回404

解决这个问题的方法是在包含你的css时使用绝对路径

而不是../includes/style.css

使用<?php echo $webroot; ?>/includes/style.css

$webroot这里是项目webroot的完整路径

答案 2 :(得分:1)

它应该是/includes/style.css,而不是../includes/style.css,这就是全部 总是使用绝对路径。

答案 3 :(得分:1)


感谢你的帮助。这是我用来解决问题的代码:

$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="";

所以现在道路变成了,

/includes/style.css 

而不是

//includes/style.css