以下规则有效,但它会更改地址栏中的URL,这不是预期的。
RewriteRule ^network/(.*)$ http://www.example.com/network.php?networkUrl=$1 [L]
以下规则重定向,URL保持不变,但是network.php文件中包含的所有图像都被错误引用...
RewriteRule ^network/(.*)$ network.php?networkUrl=$1 [L]
有没有办法让这项工作?
答案 0 :(得分:5)
这是因为您的浏览器将路径解释为相对路径。
要解决此问题,请使用绝对路径引用图像和CSS,即<img href="image.jpg" />
变为<img href="/image.jpg" />
同样适用于css所以
<link href="stylesheets/foo.css" media="print" rel="stylesheet" type="text/css"/>
变为
<link href="/stylesheets/foo.css" media="print" rel="stylesheet" type="text/css"/>
通过这种方式,所有资源链接在从任何深度引用时都可以按预期工作/foo/bar/baz/script.php
,依此类推。
答案 1 :(得分:0)
在页面中设置基本href HTML标记也有帮助:
<base href="http://www.domain.com/" />
然后所有相关图像,样式表或javascript文件都将相对于此基础href。