Wordpress 中的固定链接在 Google Cloud Platform 上不起作用

Wordpress 中的固定链接在 Google Cloud Platform 上不起作用

我已经绞尽脑汁想了三个星期,想让 Wordpress 中的永久链接设置在 Google Cloud Platform 上正常工作。下面简要介绍一下我拥有的、正在尝试的以及已经尝试过的方法。

我在 GCP 上有两台服务器,它们都遇到了同样的问题。

服务器 1(迁移服务器) 此服务器有四个我从共享托管提供商迁移的 Wordpress 网站。除非我使用 WordPress 设置下“永久链接”部分中的第一个设置,否则这四个 WordPress 网站都存在问题。操作系统:Debian 8 网站:www.example.com

服务器 2(Google 部署) 该服务器是使用 Google 预构建的 wordpress 实例部署启动的单个 Wordpress 部署。操作系统:Debian 8 Wordpress:4.8

永久链接问题: 在 Wordpress -> 设置 -> 永久链接 -> 如果我选择“纯文本 - http://example.com/?p=123”,我可以加载网站首页并导航到任何子页面。如果我选​​择除“纯文本”之外的任何内容,无论是“日期和名称”、“月份和名称”、“数字”、“帖子名称”还是“自定义结构”,那么我只能加载网站首页,无法加载任何其他页面。当我尝试加载任何其他页面时,我收到以下错误:

/loopstats/未找到未在此服务器上找到请求的 URL。Apache /2.4.10 (Debian) 服务器位于 example.com 端口 80

现在他是真正的关键,服务器 2(GCP 部署),我使用 Google 部署管理器启动 Wordpress 实例,永久链接的默认设置是带有以下 slug 的“自定义”选项:

/index.php/%year%/%monthnum%/%day%/%postname%/

同样,如果我使用除此自定义链接之外的任何其他设置,我只能加载首页,并且所有其他链接都会损坏。

当我返回服务器 1(迁移后的服务器)并在自定义字段中输入此 slug 时,服务器 1 上的一切都正常工作。但这对我来说不起作用,因为我现在只剩下这些包含 index.php 的非常讨厌的链接。(有人告诉我这对 SEO 来说很糟糕)。

我尝试过的事情:

  1. 花了好几天时间在 Google 上搜索。我对 Wordpress 主站、一些插件网站、Reddit 都有疑问,但总是一无所获。

  2. Apache2 Rewrite:从我在网上浏览的不同网站中,我发现如果未启用 Apache Rewrite,则可能是问题所在。我仔细检查了两个网站,确保都启用了此功能。

  3. .htaccess文件:我删除了.htaccess服务器 1 上的文件,并用服务器 2(Google 部署)上的 .htaccess 文件替换它。除了允许我现在使用服务器 2 上的自定义 slug 之外,这不会给永久链接结构带来任何好处。(/index.php/%year%/%monthnum%/%day%/%postname%/

.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
# END Wordpress

有人知道我做错了什么吗?我希望能够使用更好的永久链接并摆脱这些非常讨厌的链接。

答案1

使用 ssh:编辑你的 apache .conf

sudo nano /etc/apache2/apache2.conf

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride ALL <----(edit from none)
        Require all granted
</Directory>

...然后使用以下命令重新启动 apache2:

sudo 服务 apache2 重启

相关内容