Virtualhost
通過letsencrypt排除https重定向上的某些路徑
我在燈組上有一個應用程序。該應用程序使用讓我們為 https 加密 SSL 證書。該應用程序的一項功能是允許使用者將某些內容嵌入到其他網站的 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。
特定規則的重寫條件在邏輯上與一起確定是否應應用該規則。你可以
!
用來否定一個條件。你應該能夠做類似的事情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。