htaccess重写以创建友好的URL

时间:2011-07-26 11:41:42

标签: php .htaccess mod-rewrite url-rewriting

以下规则有效,但它会更改地址栏中的URL,这不是预期的。

RewriteRule ^network/(.*)$ http://www.example.com/network.php?networkUrl=$1 [L]

以下规则重定向,URL保持不变,但是network.php文件中包含的所有图像都被错误引用...

RewriteRule ^network/(.*)$ network.php?networkUrl=$1 [L]

有没有办法让这项工作?

2 个答案:

答案 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。

http://www.w3.org/wiki/HTML/Elements/base