Исключить определенные пути при переадресации https с помощью letsencrypt
У меня есть приложение на стек лампы. Приложение использует зашифрованные SSL-сертификаты для https. Одной из функций приложения является предоставление пользователям возможности вставлять определенный контент в iframe на других сайтах.
Используя скрипт сертификации Let's Encrypt, я принудительно перенаправил весь трафик на https. Я надеюсь разрешить путям вставки быть http или https.
Вот мой файл conf виртуального хоста:
# 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.
1 ответ
Условия перезаписи для конкретного правила логически объединяются и объединяются, чтобы определить, следует ли применять правило. Ты можешь использовать !
отменить условие. Вы должны быть в состоянии сделать что-то вроде
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.