Htaccess静态内容不起作用!

时间:2011-05-30 04:31:08

标签: php apache .htaccess redirect http-status-code-301

所以我设置了以下几行,以便将一些请求重定向到我的静态域:

RewriteEngine On
RewriteBase /

RewriteRule ^img/(.*)$ http://static.mydomain.com/img/$1 [R=301] 
RewriteRule ^css/(.*)$ http://static.mydomain.com/css/$1 [R=301]
RewriteRule ^js/(.*)$ http://static.mydomain.com/js/$1 [R=301,L]

但出于某种原因,当我链接到a时,让我们说一张图片:

<img src="img/icons/hello.png">

当它真正存在于静态服务器上时显示404(这实际上意味着它没有被重定向)。

我做错了什么?我花了两个小时尝试我所知道的一切,但没有找到修复。

非常感谢您提前。这是我的完整htaccess文件:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteRule ^img/(.*)$ http://static.mydomain.com/img/$1 [R=301] 
    RewriteRule ^css/(.*)$ http://static.mydomain.com/css/$1 [R=301]
    RewriteRule ^js/(.*)$ http://static.mydomain.com/js/$1 [R=301,L]

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule> 

1 个答案:

答案 0 :(得分:1)

调试重写的一个好方法是指定RewriteLog和RewriteLogLevel。您将日志级别设置为9,这会记录有关重写的大量内容。记得在调试后禁用日志记录,因为它对于apache进程非常重要。

RewriteLog documentation