5

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

这是场景:

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

我已经设置了 htacces 文件。事实上,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帖子,但没有什么可以帮助我。任何帮助都会非常好。

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

  • 删除页面并重新创建。
  • 访问 wp_options (db) 上的永久链接字段并将值设置为空白并再次在管理员中设置永久链接选项。
  • 我通过 Zend Server 的 apache2 安装在 Windows 7 上运行它。
  • 我认为这是与我的localhost环境有关的问题,所以我将网站放在网上。一点运气都没有。我假设当您设置静态首页时,wordpress 无法将永久链接更改为更友好的 url 类型。真可惜。
4

6 回答 6

23

对于那些使用 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>

希望这可以帮助某人

于 2012-11-03T23:27:09.317 回答
6

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

    a2enmod rewrite

并通过运行重新启动 apache2 服务:

    systemctl restart apache2

或者

    service apache2 restart

如果您运行的是 Ubuntu 18.04,您可以查看下所有可用的 apache2 模块,/etc/apache2/mods-available并通过列出/etc/apache2/mods-enabled.

于 2019-04-16T08:29:06.437 回答
5

不知道大家有没有找到解决办法,不过我通过在httpd.conf文件中简单地开启LoadModule rewrite_module modules/mod_rewrite.so解决了这个问题。

于 2012-10-09T23:53:35.497 回答
4

另请参阅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
于 2013-07-26T00:04:26.727 回答
0

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

于 2018-02-12T05:28:08.877 回答
0

这对我有用,就像@Skillachie 写的一样,但如果您使用 SSL,请务必在 000-default-SSL.conf 文件中包含这些设置!

<Directory /var/www/PATH>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>
于 2018-05-29T04:46:19.700 回答