从 https 到 http 的子域重定向不起作用

Subdomain redirect from https to http doesn't work

我想在 apache 上重写 link。 Apache 使用 ssl。我的应用程序 return 一些请求为 https link。示例:

https://www-prd.euro1.sdl.electric.com/uk/en/assets-re1/js/adapt-img.js

需要重定向到:

http://www-prd.euro1.sdl.electric.com/uk/en/assets-re1/js/adapt-img.js

只需将 https 替换为 http。 我的最后一个变体:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^https://electric\.com [NC]
RewriteRule ^(.*)$ http://electric.com/ [L,R=301]

但这对我没有帮助。

配置文件:

ProxyPass /server-status !
Listen 443
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
Mutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLProtocol all -SSLv2
SSLHonorCipherOrder On
SSLCipherSuite ALL:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:+HIGH:+MEDIUM

SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

<VirtualHost *:443>
ServerName fe1-app.projects.com
SSLEngine on
AllowEncodedSlashes On
RewriteEngine on
RewriteCond %{HTTP_HOST} ^https://www-prd\.euro1\.sdl\.electric\.com [NC]
RewriteRule ^(.*)$ http://www-prd.euro1.sdl.electric.com/ [L,R=301]
</VirtualHost>

ProxyPassMatch  (.*) http://localhost:20180 nocanon
ProxyPreserveHost On
ProxyStatus On
SetEnv proxy-nokeepalive 0

https:// 不应该加前缀 HTTP_HOST,试试这个:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www-prd\.euro1\.sdl\.electric\.com [NC]
RewriteRule ^(.*)$ http://www-prd.euro1.sdl.electric.com/ [L,R=301]

如果您只需要加载 js(无重定向)试试这个:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www-prd\.euro1\.sdl\.electric\.com [NC]
RewriteRule ^(.*)$ http://www-prd.euro1.sdl.electric.com/ [L]