我有一个wordpress博客,我需要让其中一个页面安全。我被告知要将该页面的链接指向https://claimpage.html,而不是http://claimpage.html。
问题是我实际上并没有创建将用户链接到各个页面的菜单。这是由后台代码自动完成的。我想我需要提出某种IF声明,如果页面标题是“声明现在”,那么使用https,否则使用http。
我在header.php中找到了这个代码,所以我认为我的更改需要在这里进行,但我不确定该怎么做。
<div id="navbar">
<ul class="menu">
<li class="<?php if ( is_home() ) { ?>current_page_item<?php } else { ?>page_item<?php } ?>"><a href="<?php echo get_settings('home'); ?>"><?php _e('Home'); ?></a></li>
<?php wp_list_pages('sort_column=id&depth=1&title_li='); ?>
<?php wp_register('<li>','</li>'); ?>
</ul>
</div> <!-- end of #navbar -->
有关如何创建一个我知道标题和网址或https的页面的建议,而其他页面保持使用普通的http?
该网站托管在安全的服务器上,所以我有一个ssl证书。
答案 0 :(得分:2)
继prodigitalson的想法之后。您可以将其添加到.htaccess:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^claimpage.html https://claimpage.html [R=301,L]
这应该可以解决问题。
答案 1 :(得分:0)
在.htaccess中使用重写规则或RedirectMatch。如果重定向链接而不修改代码,那将会很谨慎。
答案 2 :(得分:0)
如果您只有一种语言,并且您指向此网站的链接会静态粘贴到您的主题中。
<div id="navbar">
<ul class="menu">
<li class="<?php if ( is_home() ) { ?>current_page_item<?php } else { ?>page_item<?php } ?>"><a href="<?php echo get_settings('home'); ?>"><?php _e('Home'); ?></a></li>
<?php wp_list_pages('sort_column=id&depth=1&title_li='); ?>
<?php wp_register('<li>','</li>'); ?>
<li><a href="https://yoursecurelink">my secure link</a></li>
</ul>
</div> <!-- end of #navbar -->
不需要正则表达式,IF或ELSE等。我认为你的链接是静态的,所以只需粘贴即可。