WordPress PermaLinks 不起作用(mod 启用重写 + 启用 FollowSymLinks + Web 服务器可以写入 .htaccess)

WordPress PermaLinks do not work (mod rewrite enabled + FollowSymLinks enabled + Webserver can write in .htaccess)

我遇到了一个严重的问题。我克隆的 Wordpress 安装中的 Permalinks 不起作用。例如,如果我有一个类别 "cars",我希望 link 看起来像 mysite.com/category/cars。 原始版本与我正在使用的服务器不同。我更改了数据库中 "siteurl" 和 "home" 的值以及 wp-config.php 文件中 'WP_HOME' 和 'WP_SITEURL' 的值。数据库凭据是正确的(首先用 "ugly" links 检查并且有效)。 Mod 重写已启用,apache 的 FollowSymLinks 选项在文件 /etc/apache2/sites-enabled/000-default.conf 中启用,文档根目录指向 /var/www/mywordpressinstallation 并且 .htaccess 文件对于 wordpress 是可写的。 apache 服务器版本是 2.4.7。该站点以前托管在 NGinx 服务器上,这会不会与我们的服务器发生冲突?

/etc/apache2/sites-enabled/000-default.conf 文件:

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/mywordpressinstallation
    <Directory />
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
</VirtualHost>

.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

我正在使用的网站也有一个自定义构建插件。我不确定这是否也是问题的原因,因为它不是标准构建的 WP 插件。

提前感谢您的回答

我意外地解决了这个问题。我刚刚从一台已经工作的服务器上复制了一个 default.conf 并编辑了文档根路径。检查后发现我给了 apache 错误的文件夹路径。您必须从 DocumentRoot ex 中写出整个路径而不是您的亲戚。 “/”是错误的,但如果您想为该路径设置规则,则“/var/www”是正确的,即使您已经将 DocumentRoot 路径设置为“/var/www”,您仍然必须编写整个路径.