2014-07-10 8 views
1

Я искал и искал, но по какой-то причине не может заставить это работать, как мне это нужно. Мне нужно написать правило в htaccess, которое проверяет, существует ли файл, и если он не выглядит в подкаталоге исходного каталога. Например, если запрос:.htaccess redirect в подкаталог каталога

www.mysite.com/css/main.css 

если файл main.css не найден мне нужно перенаправить

www.mysite.com/css/src/main.css 

Я попробовал это в моей .htaccess в/CSS/директории

RewriteEngine ON 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^css/?([^/].+)?$ /css/src/$1 [L,R=301] 

Шнуры для меня, что это должна быть очень простая задача, но, похоже, она не может работать. Также в отношении отладки htaccess, как я регистрирую то, что ищет правило перезаписи? У меня есть это в моем файле VirtualHost:

LogLevel trace4 

, но это не показывает, где правило перезаписи пытается идти ... Спасибо за помощь!

ответ

1

Ваше регулярное выражение кажется неправильным. Используйте это правило:

RewriteEngine ON 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^css/([^/]+)$ /css/src/$1 [L,R=301,NC] 

Для вашей второй части вам нужно:

LogLevel trace4 
RewriteLog "/val/logs/rewrite.log" 
+0

Спасибо anubava, это помогли кучу –

+0

Добро пожаловать, рад, что это сработало. – anubhava

+0

+1 для аккуратного исправления. :) – zx81

0

Я был в состоянии понять это, проблема у меня был был редирект здесь мой файл .htaccess в случае, если кто испытывает подобную проблему:

в моем каталоге CSS у меня есть следующие .htaccess:

RewriteEngine ON 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/].+)?$ src/$1 [L] 
Смежные вопросы