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

时间:2018-05-15 10:30:31

标签: regex virtualhost apache2.4

我想在apache重写链接。 Apache使用ssl。我的应用程序返回一些请求作为https链接。例如:

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

只需替换http上的https即可。 我的最后一个变种:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^https://electric\.com [NC]
RewriteRule ^(.*)$ http://electric.com/$1 [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/$1 [L,R=301]
</VirtualHost>

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

1 个答案:

答案 0 :(得分: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/$1 [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/$1 [L]
相关问题