0

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

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

我无权访问 .htaccess 文件 在重定向时,引擎似乎看不到 URL。除了 JS 之外还有什么可管理的想法吗?我不想错过谷歌果汁

4

2 回答 2

2

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

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

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

出于 SEO 目的,您可能也需要处理_escaped_fragment_参数

于 2013-05-20T14:43:00.337 回答
1

几周前我遇到了这个问题。

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

您可以在下面找到我的主题标签 #! 的 WordPress 重定向解决方案!:(您应该将此代码放在活动主题的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');
于 2013-05-20T15:36:05.400 回答