Я разрабатываю зеркальный веб-сайт (где люди могут загружать файлы, вроде FTP). Мне было интересно использовать CloudFlare, чтобы сократить использование полосы пропускания. У меня есть зеркальный сайт с mod_rewrite, так что когда пользователь переходит на http://www.example.com/xyz/file.zip он перенаправлен на http://www.example.com/download.php?path=xyz&file=file.zip который увеличивает количество загрузок и выводит файл "file.zip". Вот правило перезаписи:
RewriteRule ^(.*)/((.*)(.zip))$ /download.php?path=$1&file=$2
Мне было интересно, буду ли я использовать CloudFlare на этом веб-сайте, сделает ли он файл .htaccess бесполезным, а код PHP - бесполезным?
На основе этой страницы Cloudflare не кэширует zip-файлы. Если zip-файлы занимают большую часть вашей полосы пропускания, CloudFlare не сильно вам сэкономит.
Указанное выше RewriteRule не выполняет перенаправление. Для перенаправления вам понадобится что-то вроде [R]
или [R=301]
после правила.
Если вы найдете конкурирующий сервис, делает кешировать zip-файлы, перенаправление может быть правильным способом достижения обеих ваших целей. Отправьте загрузчику ссылку на http://www.example.com/xyz/file.zip
как вы сейчас делаете (оставьте перезапись, в которой PHP-файл обслуживает эту страницу), но пусть PHP отправит обратно перенаправить (Код ответа HTTP 302 или 303), отправив их на http://www.example.com/realpath/file.zip
. Затем их клиент сделает новый запрос для этого URL-адреса и фактически получит файл.