当我使用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" />
答案 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