У меня на стеке лампы есть приложение. Приложение использует SSL-сертификаты Let's encrypt для https. Одна из функций приложения - позволить пользователям встраивать определенный контент в iframe на других сайтах.
Используя скрипт сертификации Let's Encrypt, я принудительно перенаправил весь трафик на https. Я надеюсь, что пути для встраивания будут http или https.
Вот мой файл конфигурации виртуального хоста:
# file: /etc/apache2/sites-available/mysite.com.conf
<VirtualHost *:80>
ServerAdmin me@server.com
ServerName mysite.com
DocumentRoot /var/www/mysite.com
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mysite.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
# Log file locations
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/mysitecom_error.log
CustomLog ${APACHE_LOG_DIR}/mysitecom_access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =mysite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Я бы хотел добавить такое условие:
If URI begins with: embed/video
Do not redirect to https. Allow either http or https for this path.
При сохранении перенаправления всего остального трафика на https.
Условия перезаписи для конкретного правила логически объединяются вместе, чтобы определить, следует ли применять правило. Ты можешь использовать !
отрицать условие. Вы должны уметь делать что-то вроде
RewriteEngine on
RewriteCond %{SERVER_NAME} =exmple.com
RewriteCond %{REQUEST_URI} !^/embed/video
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Если имя сервера - example.com и URI запроса не начинается с / embed / video, тогда перенаправьте на https.