我想根据所选国家/地区显示网址,因此我根据所选国家/地区使用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]
感谢。
答案 0 :(得分:2)
访问www.example.com/us/index.html时,style.css计算的网址是www.example.com/us/includes/style.css,显然不存在。
因此,根据您的意图,
答案 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