Я пытаюсь создать идеальный файл .htaccess, который помечает все поля для использования преимуществ сжатия сервера, но только там, где это имеет смысл, и кэширования ресурсов в публичных прокси-серверах, опять же, там, где это имеет смысл. Я чувствовал свой путь через процесс, и я думаю, что я в значительной степени там, но я подозреваю, что, возможно, осталось что-то подделать, и я подумал, что хотел бы предложить предложения. У меня есть подозрения, что его еще нет, потому что я обнаружил замечательный инструмент, и для начала я должен поделиться им с вами.
www.pingdom.com имеет большой набор инструментов для анализа веб-сайтов, многие из которых можно использовать бесплатно, и лично я считаю, что лучше всего http://tools.pingdom.com/fpt/. Это показывает время загрузки каждый элемент вашей страницы, но, что более важно, на вкладке «Performance Grade» предлагает разбить, где все может быть лучше. Сейчас я использую несколько ресурсов JQuery, которые обслуживаются Google (и другими), и я понимаю, что они должны существовать на многих прокси-серверах. Я не уверен, как сказать, что в моем файле .htaccess (хотя я пробовал) и, конечно же, анализ Pingdom включает в себя следующую обратную связь:
Следующие общедоступные кешируемые сжимаемые ресурсы должны иметь
Заголовок "Vary: Accept-Encoding":
• http://jmar777.googlecode.com/svn/trunk/js/jquery.easing.1.3.js
• http://kwicks.googlecode.com/svn/branches/v1.5.1/Kwicks/jquery.kwicks-1.5.1.pack.js
Что ж, я думал, что сделал это, но, опять же, возможно, это зависит от серверов, которые на самом деле служат этим ресурсам для установки этих заголовков, и, может быть, я ничего не могу с этим поделать? Это так? В любом случае, вот мой файл .htaccess на данный момент. Пожалуйста, обратите внимание, что у меня слишком низкий уровень кэширования, потому что я все еще только экспериментирую с ним. Я исправлю это, прежде чем начать жить с этим.
suPHP_ConfigPath /home/mydomain/public_html
<Files php.ini>
order allow,deny
deny from all
</Files>
<ifModule mod_deflate.c>
<filesMatch "\.(js|css|php|htm|html)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
# 1 HOUR
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|htm|html|)$">
Header set Cache-Control "max-age=3600, public"
</filesMatch>
# PHP - NO CACHING WANTED DUE TO USING SESSION COOKIES
<filesMatch "\.(php)$">
Header set Cache-Control "private"
</filesMatch>
# STORE BOTH COMPRESSED AND UNCOMPRESSED FILES FOR JS & CSS
<IfModule mod_headers.c>
<FilesMatch "\.(js|css|xml|gz)$">
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
Вы видите, что я пытаюсь сделать 'Vary Accept-Encoding' ближе к концу файла, но не уверен, что это то, что нужно. Как мне сообщить клиентам, что они имеют доступ к JQuery и тому подобным прокси-серверам, в которых эти файлы, несомненно, хранятся, и есть ли что-то еще, что я могу сделать, чтобы мой файл .htaccess быстрее доставлял контент и контент, дружественный моей поисковой системе?
Спасибо за ваши мысли.
Edit:
Кажется, мои вопросы здесь были недостаточно ясны, поэтому здесь есть некоторые пояснения:
1) Является ли библиотека JQuery, размещенная в Google, чем-то, чья доступность прокси-сервера как-то контролируется моими настройками .htaccess, потому что я делаю удаленную ссылку на нее в своем PHP, и если да, то как я должен сказать, в мой файл .htaccess, «пожалуйста, кэшируйте эту библиотеку в прокси в течение года или около того»?
2) Как мне указать, что размещаемые в Google файлы должны предоставляться сжатыми и несжатыми с помощью Vary Accept-Encoding? В предположении, я бы сказал, что обе проблемы были под контролем Googles, а не моя, поэтому, чтобы сделать это абсолютно явным ...
3) Варианты сжатия и проксирования файлов, таких как библиотека JQuery, находятся под моим контролем или под (в данном случае) Googles?
4) В общем, что-нибудь в моем файле .htaccess выражается неоптимальным (длинным витком) способом и как я могу его укоротить / сжать?
5) Что-нибудь в файле .htaccess секвенировано так, что может вызвать проблемы - например, я ссылаюсь на CSS по трем отдельным правилам - имеет ли значение порядок?
(конец редактирования).