如何重定向以#开头的地址!

时间:2013-05-20 14:08:41

标签: redirect

我有一个新的wordpress网站,而不是我的旧Wix网站。 在旧页面中,此页面位于http://example.com/#!contact/ct07/

下的新页面地址如http://example.com/contact

我已经尝试了3个重定向插件但没有用(重定向,重定向编辑器,快速301重定向)。

我无法访问.htaccess文件 在重定向上,似乎引擎看不到URL。 除JS以外的任何可管理的想法?我不想错过谷歌果汁

2 个答案:

答案 0 :(得分:2)

浏览器不会将#之后的部分发送到服务器,因此服务器不知道该部分,也无法进行重定向。

所以你必须在javascript中进行重定向:

if (/^#contact\//.test(document.location.hash)) {
    document.location = '/contact';
}

对于SEO目的,您可能还想处理_escaped_fragment_参数

答案 1 :(得分:0)

几个星期前我遇到了这个问题。

PHP在哈希标记之后没有得到任何东西,因此无法解析请求URL并获取哈希值。但JavaScript可以。

下面你会找到我的#Pressress重定向解决方案#! : (您应该将此代码放在活动主题的functions.php中):

function themee_hash_redirects() {
    ?>
    <script type="text/javascript">
        function themee_hashtag_redirect( hashtag, url) {
            var locationHash = document.location.hash;
            if ( locationHash.match(/#!/img) ) {
                if ( hashtag == locationHash ) {
                    document.location.href = url;
                }
            }
        }
        // Examples how to use themee_hashtag_redirect
        themee_hashtag_redirect('#!contact', '/qqq/');
        themee_hashtag_redirect('#!zzz', '/aaa/');
    </script>
<?php
}
add_action('wp_footer', 'themee_hash_redirects');

http://themee.net/blog/how-to-make-hashtag-redirects-in-wordpress/