Как разместить wp-content на другом домене, как CDN?

Можно ли разместить каталог wp-content на другом домене, чтобы все загрузки и изображения загружались оттуда? Если да, то как я могу настроить WordPress для этого, предпочтительно без использования стороннего плагина?

Понравился вопрос? Нужен ответ? Поддержите проект
WPAsk
Ответов: 12
  1. messerschmidt

    Под доменом я подразумевал другой домен, который также находился на другом сервере.

  2. Tommixoft

    Вставьте это в свой .HTACCESS:

    Header unset ETag
    FileETag None
    
    # BEGIN Expire headers  
    <ifModule mod_expires.c>  
        ExpiresActive On  
        ExpiresDefault "access plus 35 seconds"  
        ExpiresByType image/x-icon "access plus 2592000 seconds"  
        ExpiresByType image/jpeg "access plus 2592000 seconds"  
        ExpiresByType image/png "access plus 2592000 seconds"  
        ExpiresByType image/gif "access plus 2592000 seconds"  
        ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"  
        ExpiresByType text/css "access plus 604800 seconds"  
        ExpiresByType text/javascript "access plus 216000 seconds"  
        ExpiresByType application/javascript "access plus 216000 seconds"  
        ExpiresByType application/x-javascript "access plus 216000 seconds"  
        ExpiresByType text/html "access plus 600 seconds"  
        ExpiresByType application/xhtml+xml "access plus 600 seconds"  
    </ifModule>  
    # END Expire headers  
    
    # BEGIN Cache-Control Headers  
    <ifModule mod_headers.c>  
        <filesMatch ".(ico|jpe?g|png|gif|swf)$">  
            Header set Cache-Control "public"  
        </filesMatch>  
        <filesMatch ".(css)$">  
            Header set Cache-Control "public"  
        </filesMatch>  
        <filesMatch ".(js)$">  
            Header set Cache-Control "private"  
        </filesMatch>  
        <filesMatch ".(x?html?|php)$">  
            Header set Cache-Control "private, must-revalidate"  
        </filesMatch>  
    </ifModule>  
    # END Cache-Control Headers
    

    Это скажет браузеру кэшировать все javascript, изображения, css на компьютер, чтобы изображения не загружались с сервера, пока не изменятся.
    Вы можете использовать Chrome, чтобы протестировать его на временной шкале (с помощью Ctrl+Shift+J). Вы можете увидеть, сколько времени заняло скачивание изображений, кэшированные обычно занимаtт 25 мс (потому что сначала сервер должен сказать: файлы не изменены, поэтому используйте локальную копию :))

    1. messerschmidt

      Это все хорошо, но как мне настроить WordPress так, чтобы он загружал файлы во второй домен и затем читал с него?

  3. Tommixoft

    Мой второй ответ:

    Использовать другой сервер нелегко, использовать свой поддомен, допустим, media.domain.com — не сложно. Главное препятствие для ускорения загрузки — использование разных доменов, и для этого хорошо подходят поддомены, потому что браузеры также откроют для них новое соединение. Браузер создаст новое соединение для загрузки изображений, поэтому время загрузки будет короче (если сервер не медленный).

    1. messerschmidt

      Спасибо! Но я действительно хочу разместить файлы в совершенно другом месте по разным причинам. Я так понимаю, это сложно, но все же возможно?

    2. messerschmidt

      Это не то… Я надеялся, что вы сможете использовать что-то вроде mod_rewrite, чтобы изменить местоположение каталога wp-content.

    3. Tommixoft

      Ну, все возможно, но я не знаю ответа. Это сложно, потому что загрузка файлов — ЛОКАЛЬНАЯ штука, и для повторной загрузки файлов на удаленный сервер должно быть много модификаций.

Добавить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: