Как написать правило перезаписи js, css, img для домена и IP-адреса, повторно используя текущее правило?

Это мое текущее правило

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ public/     [L]
    RewriteRule (.*) public/$1 [L]
</IfModule>

Это правило перепишет все URL-адреса в общедоступную папку.

www.xxx.com/js/main.js -> www.xxx.com/public/js/main.js

123.123.123.123/папка_сайта/js/main.js -> 123.123.123.123/папка_сайта/public/js/main.js

Теперь я хочу добавить некоторые правила для js, css, img

e.g.

src="/js/main.js"
src="/css/main.css"
src="/img/test/png"

Если URL-адрес является доменом, не нужно переписывать «www.xxx.com».

src="/js/main.js" -> www.xxx.com/js/main.js

Если URL-адрес IP, перепишите URL-адрес папки сайта «123.123.123.123/site_folder».

src="/js/main.js" -> 123.123.123.123/site_folder/js/main.js

После первой перезаписи используйте это текущее правило для повторной перезаписи.

RewriteRule ^$ public/     [L]
RewriteRule (.*) public/$1 [L]

www.xxx.com/js/main.js -> www.xxx.com/public/js/main.js
123.123.123.123/site_folder/js/main.js -> 123.123.123.123/site_folder/public/js/main.js

Так что мне просто нужно изменить текущий, если я переименую общую папку.

Можно ли сделать все вышеперечисленное?


person CL So    schedule 10.07.2014    source источник
comment
Что такое /site_folder/ и где находится этот .htaccess?   -  person anubhava    schedule 10.07.2014
comment
123.123.123.123/папка_сайта/ = public_html/папка_сайта/, а расположение .htaccess — public_html/папка_сайта/.htaccess.   -  person CL So    schedule 10.07.2014
comment
Хорошо, 123.123.123.123/site_folder/ такой же, как www.xxx.com/site_folder/?   -  person anubhava    schedule 10.07.2014
comment
Нет, потому что на виртуальном хосте www.xxx.com указывает на public_html/site_folder/, поэтому www.xxx.com будет иметь доступ к корню папки приложения.   -  person CL So    schedule 10.07.2014


Ответы (1)


Поместите это правило в /public_html/.htaccess:

RewriteEngine On

RewriteRule ^(js|css|img)/.+$ /site_folder%{REQUEST_URI} [NC,L,R=302]

Поместите это правило в /public_html/site_folder/.htaccess:

RewriteEngine On

RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
person anubhava    schedule 10.07.2014