带有帖子名称永久链接的HTTP 404

Ort*_*und 12 wordpress permalinks

好的,我只是在这个网站上创建了第一页.它在我使用默认永久链接设置时有效.

如果我更改永久链接设置以使用帖子名称,那么我会得到一个HTTP 404.

我不确定出了什么问题,或者我是否已经破坏了什么.任何人都可以帮我解决?

该网站托管在apache上.

页面存在,链接被破坏

Jar*_*obb 24

你在使用XAMPP还是MAMP?这些环境存在一些常见的问题,取自WordPress Codex:修复永久链接问题

XAMPP(Windows)的用户:某些版本的XAMPP默认情况下不启用mod_rewrite(尽管它是在Apache中编译的).要启用它 - 从而使WordPress能够编写创建相当永久链接所需的.htaccess文件 - 您必须打开apache/conf/httpd.conf并取消注释行LoadModule rewrite_module modules/mod_rewrite.so(即删除哈希/井号)在前面的线).

WAMP(Windows)的用户:某些版本的WAMP(所有版本?)默认情况下不启用mod_rewrite或允许遵循SymLinks.要启用所需的功能,请导航到apache/conf/httpd.conf文件,使用文本编辑器打开并取消注释行LoadModule rewrite_module modules/mod_rewrite.so(即删除行前面的哈希/井号).然后在同一个文件中进一步向下有一个以"Options FollowSymlinks"行开头的部分.将该部分中的第二行从"AllowOverride none"更改为AllowOverride all.保存已编辑的httpd.conf并重新启动所有WAMP模块.你的永久链接现在应该可行.

如果您的沙箱没有可用,您可能还会看到没有mod_rewrite的永久链接mod_rewrite.

阿帕奇

如果您使用的是Apache,通常会有两个其他罪魁祸首来破坏永久链接:.htaccess没有生成(因为权限设置)或Apache的AllowOverride指令未启用.

首先,如果您通过SSH连接到服务器,您是否在根目录中看到生成的.htaccess文件?如果没有,WordPress可能没有权限写入该文件.文件确实存在,但WordPress无法编辑它.在任何一种情况下,您都可以chmod将该文件(如果它不存在则创建它)到666.

接下来,确保您的Apache配置具有以下设置:

  <Directory />
    Options FollowSymLinks
    AllowOverride All
 </Directory>
Run Code Online (Sandbox Code Playgroud)

最后,阅读WordPress Codex 的Fixing Permalink Problems部分.关于为什么永久链接可能不起作用,还有其他一些提示和建议.


Ali*_*son 8

就我而言,首先我必须更新.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)

如果WordPress具有写入权限,它将自动执行此操作。否则,它会抱怨它无法写入,并提供上述代码示例,以便您可以手动更新.htaccess。

之后,我编辑了apache2.conf文件。在Linux中,它位于中/etc/apache2/apache2.conf,将有一个类似以下的部分:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

更改AllowOverride None为AllowOverride FileInfo。

最后,执行以下命令:

sudo a2enmod rewrite
service apache2 restart
Run Code Online (Sandbox Code Playgroud)

所有这些步骤对于正常工作都是必需的。

  • `AllowOverride FileInfo` 是我遗漏的部分。 (2认同)