Спасибо за прочтение. Прежде всего, у меня есть один .htaccess внутри корневого каталога со следующим утверждением:
# Mod Rewrite <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ /root/ [L] RewriteRule (.*) /root/$1 [L] </IfModule>
и внутри корневой папки я получил этот файл:
# Mod Rewrite <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /root/index.php/$1 [PT,L] </IfModule>
Кроме того, в папке /root
я получил три папки: css
, js
и images
.
Мое приложение предназначено для отделения от моей MVC-структуры (немного похоже на CodeGgniter). Итак, вот дерево:
- application - my application files are there - root - css - js - images - grecko - my mvc framework files are there
Например, я могу обновить свою фреймворк, не касаясь всего веб-сайта, который запускается под папкой приложения.
Во всяком случае, теперь я хотел бы переместить три папки, которые я сказал выше ( css
, js
и images
), и переместить их внутри /application/assets/
. Но поскольку все перенаправляется на /root/
, мне понадобится правило, которое позволяет запрашивать такой http://www.domain.tld/css/blabla.css
для сопоставления /application/assets/css/blabla.css
, и т.п.
Я пробовал, но безуспешно.
Благодарю.
Поместите этот код в $DOCUMENT_ROOT/.htaccess
:
<IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule ^(css|js|images)(/.*|)$ application/assets/$1$2 [L,NC] RewriteCond %{ENV:REDIRECT_STATUS} !200 RewriteRule ^ root${REQUEST_URI} [L] </IfModule>
Попробуйте поместить это в .htaccess вашего корневого веб-узла (а не в корневую папку):
RewriteEngine on RewriteRule ^(css|js|images)(.*) application/assets/$1$2 [L] RewriteCond %{REQUEST_URI} !^/application/assets [NC] RewriteRule (.*) root/$1 [L]
Избегайте посторонних пробелов.