Исключить определенные пути при перенаправлении https с помощью letsencrypt

У меня есть приложение на стеке ламп. Приложение использует 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.

0
задан 2 December 2017 в 06:01
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.

0
ответ дан 5 December 2019 в 07:07

Теги

Похожие вопросы