HTTPS固定链接导致404

时间:2016-05-20 作者:Varun Hegde

已将站点从http迁移到https。主页工作正常,但其他页面(归档、单个、页面)模板导致404。

以下是迁移时的步骤。谁能指出我哪里出了问题?

将站点名称和站点url更改为https方案。

然后添加了以下htaccess规则。

   <IfModule mod_rewrite.c>
       RewriteEngine on
       RewriteCond %{HTTPS} !=on [NC]
       RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
   </IfModule> 
用刷新重写规则flush_rewrite_rules().

主页和管理页面很好,但单个页面或归档页面除外。这似乎是重写规则不适用于https方案。

谁能给我指一下正确的方向吗?

1 个回复
SO网友:Luis Sanz

您可以使用template_redirect 要强制通过WordPress的所有http流量使用https,请执行以下操作:

function force_secure_navigation() {

    if ( ! is_ssl() ) :

        $url = \'https://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'];

        wp_redirect( $url, 301 );

        exit();

    endif;

}

add_action( \'template_redirect\', \'force_secure_navigation\', 1 );
请记住,如果您使用https,还必须使用https服务您的外部资源,例如jQuery、Google字体或从CDN加载的任何内容。您可能需要检查wp_enqueue_stylewp_enqueue_script 钩子以确保没有剩下http调用。