Wordpress中的固定链接 - 找不到页面

问题描述 投票:3回答:6

我一直在寻找几个小时,但没有找到任何似乎能解决这个问题的东西。

这是场景:

我正在制作一个基于“二十一”主题的wp主题。一切都很顺利,直到我决定将网址更改为永久链接。显示的唯一页面是我之前定义的静态页面。

我已经设置了htaccess文件。实际上,WP是自动完成的。如果我切换回默认设置,一切正常,但对于SEO,我宁愿使用永久链接选项。

这是我的htaccess文件(它在我的WP安装文件夹中):

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

# END WordPress

我看过这篇文章wordpress .htaccess with permalinks但没有什么可以帮助我。任何帮助都会非常好。

更新:我已经尝试过的事情:

  • 删除页面并重新创建。
  • 访问wp_options(db)上的永久链接字段并将值设置为空白并再次在admin中设置永久链接选项。
  • 我是通过安装Zend Server的apache2在Windows 7上运行的。
  • 我认为这是与我的localhost环境有关的问题,所以我把网站放在网上。没有运气。我假设当你设置静态首页时,wordpress不能将固定链接更改为更友好的URL类型。多可惜。
wordpress .htaccess permalinks file-not-found
6个回答
20
投票

对于那些使用apache的人。你需要

  1. 确保您在托管站点的根路径中有.htaccess。示例/ var / www
  2. 更新/ etc / apache2 / sites-available / default

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

希望这有助于某人


5
投票

我不知道你是否找到了它的解决方案,但我通过在httpd.conf文件中打开LoadModule rewrite_module modules / mod_rewrite.so解决了这个问题。


3
投票

另见Permalinks on WordPress (Amazon EC2)

我有同样的问题,但上面链接中的作者建议做三件事(它对我有用!):

/etc/httpd/conf并编辑httpd.conf

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

如果将AllowOverride设置为None,也更改它

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All

我还没有创建它,在wordpress安装的根目录中放置一个.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

0
投票

httpd.conf文件中有两个“目录”部分。一个用于根文件夹,另一个用于htdocs文件夹。您必须编辑这两个字段才能使WordPress页面再次运行。希望能帮助到你。


0
投票

这对我来说就像@Skillachie一样写了但是如果你使用SSL,还要确保将这些设置包含在000-default-SSL.conf文件中!

<Directory /var/www/PATH>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

0
投票

如果编辑apache2的默认配置和Wordpress的.htaccess文件没有帮助,原因可能只是apache2的rewrite模块未启用。对于那些自己安装apache2的人来说通常就是这种情况。 Wordpress需要启用apache2的rewrite模块来支持永久链接编辑。如果像我一样,你不想手动编辑conf文件,可以通过以root身份运行这些命令来启用apache2的rewrite模块(我使用的是Ubuntu 18.04,但我确信命令与其他发行版没有区别) :

    a2enmod rewrite

并通过运行以下命令重新启动apache2服务:

    systemctl restart apache2

要么

    service apache2 restart

如果您正在运行Ubuntu 18.04,您可以查看/etc/apache2/mods-available下所有可用的apache2模块,并通过列出/etc/apache2/mods-enabled下的文件来查看启用了哪些模块。

© www.soinside.com 2019 - 2024. All rights reserved.