Htaccess для статического контента не работает! - PullRequest
2 голосов
/ 30 мая 2011

Итак, я настроил следующие строки, чтобы перенаправить некоторые запросы в мой статический домен:

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]

Но почему-то, когда я ссылаюсь на, скажем, картинку:

<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 Ответ

1 голос
/ 30 мая 2011

Один хороший способ отладки переписанных файлов - это указать RewriteLog и RewriteLogLevel.Вы устанавливаете уровень журнала до 9, который записывает довольно много вещей о перезаписи.Не забудьте отключить ведение журнала после отладки, потому что это довольно тяжело для процесса apache.

Документация RewriteLog

...