Вы не должны использовать logrotate, чтобы сделать это. Просто используйте команду как это:
ls -1 /root/backup_* | sort -r | tail -n +6 | xargs rm > /dev/null 2>&1
Эта команда оставит новые 5 файлов и удалит остающееся (если таковые имеются). Можно использовать его в задании крона.
Итак, я предполагаю, что у вас установлен ELB для приема трафика как по HTTP / 80, так и по HTTPS / 443, но все порты перенаправляются на HTTP.
Если вы хотите использовать свой метод ( что умно), вы уверены, что получите не % {X-Forwarded-Proto}
- префикс HTTP:
мне кажется странным. В остальном, мне это кажется правильным.
Если это в конфигурации виртуального хоста или основного сервера, но он все еще не работает, вы можете добавить
RewriteLog rewrite-log
RewriteLogLevel 3
, а затем заглянуть в файл rewrite-log
, чтобы увидеть, что на самом деле происходит. Этот файл может быть невероятно подробным, начиная с более низких уровней. Ведение журнала не может быть инициировано из файлов .htaccess
.
(я предлагаю вам установить флаги в RewriteRule
[R = 301, L]
, которые будут заставить сервер отправить ответ 301,
Просто хотел добавить свой опыт, так как я боролся несколько часов, прежде чем понял, что в моем файле сердцебиения есть неискаженная точка (/alive.html). Duh.
Вторая проблема заключалась в том, что основной домен не был перенаправлен, а файлы были. Так что http://domain.com/hello.html перенаправлялся на https://domain.com/hello.html, но http://domain.com не перенаправлялся.
Вот что я поместил в свой .htaccess файл, который работал на меня:
RewriteEngine On
# SSL connection forced
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{REQUEST_URI} !^/alive\.html$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
В моем случае проблема оказалась чтобы условие! https нарушало проверку работоспособности.
изменение условия на ^ http $ заставило его работать
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
обнаружил, что здесь: https://forums.aws.amazon.com/thread.jspa?messageID=641930