【问题标题】:Wordpress Links to Posts Not Working After Migration迁移后无法使用的帖子的 Wordpress 链接
【发布时间】:2016-04-12 19:46:49
【问题描述】:

我在访问我的博客文章时遇到问题。自从我迁移到新服务器后,出现以下问题。

起初,页面和帖子的链接都不起作用。但不知何故,我修复了页面,现在它开始工作了。但是帖子的链接还没有工作。

每次点击帖子时,它都会显示错误 500。我已经检查了 .htaccess 文件并将 Settings > Permalink 恢复为默认值,但仍然无法正常工作。 Mod rewrite 也是active,我可以使用永久链接访问页面链接。

谁能帮忙指出问题出在哪里?

.htaccess file
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

P.S:对不起我的语法不好,英语不是我的主要语言

【问题讨论】:

  • 500 server error 大部分是由服务器本身引起的,你有没有尝试联系主机?
  • 500 错误是网络服务器表示“我有一个大问题,但我不想在公共场合说出来”的方式。查看服务器的错误日志,会有一个明确的信息说明出了什么问题。
  • 它在我们自己的服务器上,我们不再租用主机了。网站本身可以很好地访问,产品页面、联系我们页面、职业页面。问题仅在于博客文章。链接失效了
  • 好的,所以我根据查看 apache2 错误日志的建议找到了一些东西 [Fri Jan 08 07:38:22.130290 2016] [:error] [pid 13089] [client 180.244.139.173: 55484] PHP 解析错误:语法错误,第 101 行 /var/www/html/wp-content/themes/xxx/single.php 中的文件意外结束,引用者:domain.com/en/career

标签: wordpress .htaccess mod-rewrite permalinks broken-links


【解决方案1】:

更新 .htaccess :

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

配置永久链接:

自定义结构:/%postname%/

请查看:https://codex.wordpress.org/File:permalink-settings.png

【讨论】:

  • 我试过这个,然后又试了一次。还是不行
【解决方案2】:

好的,所以在检查了指出我的 wordpress 主题 single.php 文件错误的 apache 错误日志后,我发现罪魁祸首原来是“相关新闻脚本”注入到我的单个 php 文件中。每当我尝试访问博客文章时,这都会导致整个错误为 500。

脚本是这样的:

                    <!-- Related News -->
                    <div class="relatedposts hidden-xs hidden-sm">
                    <h3>Artikel Lainnya</h3>
                    <p>&nbsp;</p>
                    <?php
                        $orig_post = $post;
                        global $post;
                        $tags = wp_get_post_tags($post->ID);

                        if ($tags) {
                        $tag_ids = array();
                        foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
                        $args=array(
                        'tag__in' => $tag_ids,
                        'post__not_in' => array($post->ID),
                        'posts_per_page'=>3, // Number of related posts to display.
                        'caller_get_posts'=>1
                        );

                        $my_query = new wp_query( $args );

                        while( $my_query->have_posts() ) {
                        $my_query->the_post();
                        ?>

                        <div class="relatedthumb">
                            <a rel="external" href="<? the_permalink()?>"><?php the_post_thumbnail(array('class' => 'img-responsive img-thumbnail',230,170)); ?><br />
                            <h5><?php the_title(); ?></h5>
                            </a>
                        </div>

                        <? }
                        }
                        $post = $orig_post;
                        wp_reset_query();
                        ?>
                    </div>
                    <!-- Related News-->

我已经删除了这些行,所有问题都解决了!

感谢您分享您的建议!

【讨论】:

    猜你喜欢
    • 2015-09-22
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2019-02-06
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多