Apache .htaccess: Обслуживание файлов .css из отдельного домена? - PullRequest
5 голосов
/ 15 февраля 2012

Я пытаюсь обслуживать файлы CSS для моего сайта из отдельного домена.

В моем сайте .htaccess (в корне документа) есть следующая запись:

RewriteRule ^templates/*\.css$ http://css.mysite.com/templates/$1 [R=301,L]

С целью простого сопоставления:

http://www.mysite.com/templates/default/styles/main.css

… и отправка HTTP 301 перенаправления на:

http://css.mysite.com/templates/default/styles/main.css

Но что на самом деле называется:

http://css.mysite.com/templates/.css

(Я хотел бы продублировать вышеупомянутое для *.js и подать их с js.mysite.com и всех png & jpgs, а также с img.mysite.com.)

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

1 Ответ

7 голосов
/ 15 февраля 2012

Попробуйте и дайте мне знать:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^css\.
RewriteRule ^templates/(.*)\.css$ http://css.mysite.com/templates/$1.css [R=301,L]

или более "динамический путь"

RewriteCond %{HTTP_HOST} ^(www\.)?mysite
RewriteRule ^templates/(.*)\.(js|css)$ http://$2.mysite.com/templates/$1.$2 [R=301,L]
RewriteRule ^templates/(.*)\.(jpg|gif|swf|jpeg|png)$ http://imgs.mysite.com/templates/$1.$2 [R=301,L]

Этот будет проверять JS и CSS и использовать поддомен на основерасширение файла: таким образом .js перейдет на js.mysite.com, а .css - на css.mysite.com и то же самое для изображений, но вместо этого перейдет на imgs.mysite.com.

или даже большеgeneric:

RewriteCond %{HTTP_HOST} ^(www\.)?mysite
RewriteRule ^templates/(.*)$ http://media.mysite.com/templates/$1 [R=301,L]

Вы перенаправляете все, что начинается с templates

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...