URL重写后缺少CSS文件和图像

时间:2011-11-21 18:02:28

标签: php css url mod-rewrite url-rewriting

我正在尝试使用模式重写来创建用户友好的URL。 我的问题是,在向我的网址提供“名称”等类别后,当我使用新网址调用网页时,它无法加载CSS文件或图片。

我有一个类似的链接:

  

本地主机/ mywebsite /项目?ID = 22

新链接类似于

  

本地主机/ mywebsite /项目/ 22 / myproject.project

htaccess代码:

RewriteRule ^project/([0-9]*)/.*\.project$ /project.php?project=$1 [L]

(它可能不是100%正确,但我现在无法访问我的代码所以我只是写了这个并且它在原始源上工作正常)

我的根目录是localhost / mywebsite /

我的CSS文件位于css / style.css

  

本地主机/ mywebsite / CSS / style.css中

我的htaccess

  

本地主机/ mywebsite / htaccess的

我的project.php文件在

  

本地主机/ mywebsite / project.php

因此,在项目页面中,我可以使用相对路径

访问CSS文件
<link href="css/style.css" rel="stylesheet" type="text/css" />

但是当我使用重写的URL页面时找不到CSS文件。

我不能使用域名的绝对路径,因为我还没有域名!它可以是任何东西。

一种方法是使用相似的域名路径,就像类似问题所建议的那样 本地主机/ mywebsite / project.php 当我运行我的脚本localy我的根目录是 本地主机 所以css链接应该看起来像

  

HREF = “mywebsite / CSS / style.css中”

但是当我上线时,我应该将所有链接更改为类似

的链接
  

HREF = “/ CSS / style.css中”

这似乎很多工作

3 个答案:

答案 0 :(得分:27)

对于您的本地版本添加

<base href="//localhost/mywebsite" />

到头部

并为您的实时版本将其更改为

<base href="//your.domain.here" />

http://www.w3.org/TR/html4/struct/links.html#h-12.4

的参考资料

答案 1 :(得分:2)

您必须在connection.php中定义基本路径或服务器视图路径,并且只要您想要该路径,请将其设置为全局。然后该变量将被调用,而css或图像将占据整个路径。

例如,

$ SVP = “http://www.example.com/”

全球$ SVP; echo $ SVP;

所以

答案 2 :(得分:1)

将图像插入到与css href链接相同的相对路径的同一文件中,在浏览器中加载页面,右键单击Internet Explorer中的图像,单击属性,您应该看到相对路径实际指向的位置