Wordpress rss feed 来自 https 的除外

Wordpress rss feed except from https

我们的邮件列表提供商要求我强制 rss 提要不是 https 而是简单的 http。

我们的网站 运行 在 Wordpress 4.7.1 上运行,并使用 Easy HTTPS Redirection 和 SSL Insecure Content Fixer 插件使网站正常运行。

有些人告诉我也许我应该为 .htaccess 添加一些例外,但我在论坛上找不到如何做。

我创建了这个线程,但我无法正确理解它。 htaccess force ssl except for rss feeds

这是我在 .htaccess 文件中找到的内容

# BEGIN HTTPS Redirection Plugin
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# END HTTPS Redirection Plugin

感谢您的帮助。 格戈

您需要使用模板重定向钩子。

add_action( 'template_redirect', 'template_redirect', 1 );

function template_redirect() {

    if ( is_ssl() && ! is_admin() ) {

        if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'your_url' ) ) {

            wp_redirect( preg_replace( '|^https://|', 'http://', $_SERVER['REQUEST_URI'] ), 301 );
            exit();

        }

    }

}

请将您的 URL 粘贴到 your_url 参数中。

你可以使用这个:

RewriteEngine On

#Check to see if HTTPs is not on, turn it on.
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteCond %{REQUEST_URI} ^\/(foobar)
RewriteRule (.*) https://%{HTTP_HOST}/ [L,R=301]

#If HTTPs is on, turn it off for foobar.
RewriteCond %{HTTP:X-Forwarded-SSL} =on
RewriteCond %{REQUEST_URI} !^\/(foobar)
RewriteRule (.*) http://%{HTTP_HOST}/ [L,R=301]

更改foobar 到相关目录。确保在测试之前清除缓存。