【问题标题】:postname giving URL was not found未找到提供 URL 的 postname
【发布时间】:2017-07-09 01:00:24
【问题描述】:

我遇到了一个问题,就是让永久链接在 debian8 上工作。

我的.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

和权限666

然后我将我的永久链接更改为 postname 而不是普通的,我得到:

在此服务器上找不到请求的 URL

在我的所有 URL 上,除了起始页。

【问题讨论】:

    标签: wordpress .htaccess debian apache2


    【解决方案1】:

    WordPress 使用 Apache 的“mod_rewrite”来提供使用永久链接的页面和帖子,听起来您的服务器上没有启用该模块。要启用它,请键入 sudo a2enmod rewrite,然后重新启动 Apache。之后,永久链接应该可以工作了。

    您还可以将您更改回原来的任何文件权限设置。

    编辑: 在您的 Apache 配置中,您可能还需要更改 AllowOverride 设置。 Ubuntu 上的默认设置不允许所有 .htaccess 指令工作,因此在 Debian 上可能相同。您可以使用AllowOverride All 或选择特定选项。 FileInfo 是 mod_rewrite 所需的。 Apache 的 AllowOverride 文档 (2.4) 在这里:https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride

    【讨论】:

    • 有趣,这通常是所有必要的。您是否将 WordPress 文件直接安装在站点的根目录中? (即,登录页面是否位于 domain.com/wp-login.php?)如果文件位于子目录中,如“方法 II”下codex.wordpress.org/Giving_WordPress_Its_Own_Directory 所述,则可能是 .htaccess 或 index.html根目录和子目录都不存在。
    • AllowOverride All 是问题
    【解决方案2】:

    我通过使用以下命令解决了我的问题

    sudo a2enmod rewrite
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 2020-11-29
      相关资源
      最近更新 更多