使用htaccess重定向时不显示图像和CSS

时间:2011-07-22 11:31:42

标签: php .htaccess redirect

当我使用htaccess重定向文件时,图像和css,javascript未正确应用 例如,我重定向了页面,

http://example.com/  

http://example.com/au/

为此我在htaccess中使用了以下代码,

RewriteRule ^([a-z]{2})/?$ index.php?cn=$1  

现在页面被正确重定向,但不是css,图像。可能是什么问题?我有这样的文件,

/index.php
/style.css
/images/...
/.htaccess

Edit: <link rel="stylesheet" type="text/css" href="/style.css" />

2 个答案:

答案 0 :(得分:1)

确保您没有任何绝对的URL问题。有时使用htaccess时,您可能会忘记浏览器认为其访问的URL(您重写的URL)不一定与Web根目录中的文件层次结构直接相关。在处理外部内容时,我总是建议使用相对于网站的www root的绝对路径。例如,加载style.css文件的正确链接是:

<link type="text/css" rel="stylesheet" href="/style.css" />

而不是......

<link type="text/css" rel="stylesheet" href="style.css" />

这种方式当浏览器认为它在au子目录中或者甚至在其他地方时,可以加载CSS,JavaScript和图像文件,而不必根据重写的URL专门化URL。

答案 1 :(得分:0)

您必须在规则前添加RewriteCond,以确保实际存在的所有文件(例如 - style.css)都未传递到index.php

尝试在现有RewriteRule

之前添加这段代码
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d