将固定链接更改为"Postname"会导致找不到页面

Ire*_*dua 9 php apache wordpress .htaccess

我有一queryfetch从自定义后类型的所有帖子device,我想每页显示3员额.使用nextprevious链接,我能够导航下一页,其他3个帖子可以看到.它默认的工作完全permalink

  //the default permalink of wordpress
http:mywebsite/?p=123
Run Code Online (Sandbox Code Playgroud)

我需要将其更改Post name为SEO目的,如下所示:

http:mywebsite/sample-post/
Run Code Online (Sandbox Code Playgroud)

然后突然出现了问题.

我正在搜索和阅读更多博客/文章,但我找不到任何有用的建议.我很困惑这个问题让我很头疼.

通过我使用此查询的方式:

   <?php
     if (have_posts()) : {
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
     query_posts('showposts=3&post_type=advice'.'&paged='.$paged);} ?>

      <ul class="adviceLandingPage">

      <?php while(have_posts()) : the_post(); ?>

       <li>
         <span><?php the_title(); ?></span>
         <span><?php $excerpt = get_the_excerpt(); echo string_limit_words($excerpt,20); ?></span>

       </li>

       <?php endwhile; ?>
          <li class="navigation">
             <?php posts_nav_link(); ?>
          </li>
       </u>
     <?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

谢谢你的任何建议.

编辑:

当我导航到下一页时,我假设看到下一个3帖子,这就是错误Page not found.

将永久链接更改为%postname%后,这是.htaccess

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

# END WordPress
Run Code Online (Sandbox Code Playgroud)

小智 8

要解决此问题,请执行以下步骤:

  1. httpd.conf在Web服务器上找到该文件
  2. 找到代码 LoadModule rewrite_module modules / mod_rewrite.so
  3. 移除#它前面
  4. 找到代码AllowOverride none并转换为AllowOverride all

它就像美味一样简单:)


Diy*_*ang 6

运行以下命令

注意:$不是命令的一部分

$ sudo a2enmod rewrite

$ cd /var/www/html

$ ls -al

$ sudo touch .htaccess

$ sudo nano .htaccess
Run Code Online (Sandbox Code Playgroud)

修改您的.htaccess文件以查看上面的代码段

# 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>

# END WordPress
Run Code Online (Sandbox Code Playgroud)
$ sudo chmod 644 .htaccess

$ sudo nano /etc/apache2/sites-available/000-default.conf
Run Code Online (Sandbox Code Playgroud)

确保AllowOverride All已设置

<Directory "/var/www/html">
    AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)
$ sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅下面的链接。

https://sachinparmarblog.com/fixing-permalinks-on-wordpress-to-use-postname/


小智 0

不确定您是否已经解决了这个问题,但通常您需要做的就是刷新数据库,登录您的网站,转到永久链接,然后进行更改并保存它,如果这没有帮助

阅读此内容: http: //codex.wordpress.org/Using_Permalinks