找不到404的Wordpress永久链接

时间:2019-06-20 18:28:54

标签: php wordpress .htaccess

我似乎无法让我的永久链接在我的WordPress网站上正常工作。

我的WordPress主页和wp-admin都可以正常工作,而我的所有子页面均无法正常工作。

我一直在处理我的.htaccess文件和site.conf文件,但似乎无法正常工作。

对于上下文,我具有以下文件结构:

Root
|--.htaccess
|--wordpress
|--|--index.php

路径:/var/www/html/domain.ca/public_html/wordpress

这是我当前的.htaccess配置:

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www.)?domain.ca$
    RewriteCond %{REQUEST_URI} !^/wordpress/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /wordpress/$1
    RewriteCond %{HTTP_HOST} ^(www.)?domain.ca$
    RewriteRule ^(/)?$ wordpress/index.php [L] 
</IfModule>
# END WordPress

这是我当前的site.conf文件:

<VirtualHost *:80>
        ServerAdmin email@email.com
        ServerName domain.ca
        ServerAlias www.domain.ca
        DocumentRoot /var/www/html/domain.ca/public_html

        <Directory /var/www/html/domain.ca/public_html>
               Options Indexes FollowSymLinks
               AllowOverride All
               Require all granted
        </Directory>

        LogLevel alert rewrite:trace3
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

我已经尝试过进入wp-admin并重新保存永久链接,这只会使情况变得更糟,因为它似乎默认将我的.htaccess设置为专为根目录而不是子目录安装的WordPress设计的。 / p>

我还确保在Apache中启用了mod_rewrite,并重新启动了服务器。

1 个答案:

答案 0 :(得分:1)

您的Virtualhost很好,您应该保留默认的wp .htaccess,因为它会在您设置永久链接后自动生成(至少在2条带注释的行#BEGIN#END WordPress之间)

引自https://wordpress.org/support/article/giving-wordpress-its-own-directory/#method-ii-with-url-change

我想第1、5和10点已经为您完成,但这可能会帮助将来的读者。

  1. 为要存储的核心WordPress文件创建新位置 (我们将在示例中使用/ wordpress)。 (在Linux上,使用mkdir 您的www目录中的wordpress。您可能要使用chown apache:您创建的wordpress目录上的apache。)

  2. 转到常规屏幕。

  3. 在WordPress地址(URL)中:设置主WordPress的地址 核心文件。示例:http://example.com/wordpress

  4. 在站点地址(URL)中:设置根目录的URL。例: http://example.com

  5. 现在将WordPress核心文件(从根目录)移动到 子目录。

  6. 从以下位置复制(不可移动!)index.php和.htaccess文件: WordPress目录进入网站的根目录(博客 地址)。 .htaccess文件是不可见的,因此您可能需要设置 您的FTP客户端以显示隐藏文件。如果您使用的不是漂亮 永久链接,则您可能没有.htaccess文件。如果你是 在Windows(IIS)服务器上运行WordPress并使用 永久链接,您将拥有一个web.config而不是.htaccess文件, 您的WordPress目录。对于index.php文件的说明 保持不变,将index.php文件复制(不要移动)到您的根目录 目录。 web.config文件的处理方式必须与 .htaccess文件,因此您必须将web.config文件移动(不要复制)到 您的根目录。

  7. 在文本编辑器中打开根目录的index.php文件

  8. 更改以下内容并保存文件。换行 说:要求(目录名(文件)。'/ wp-blog-header.php'); 接下来,使用您的目录名称作为WordPress核心 files:require(目录名( FILE )。'/wordpress/wp-blog-header.php' );

  9. 登录到新位置。现在可能是http://example.com/wordpress/wp-admin/

  10. 如果已设置“永久链接”,请转到“永久链接”屏幕,然后  更新您的固定链接结构。 WordPress会自动  如果您的.htaccess文件具有适当的文件,请更新  权限。如果WordPress无法写入您的.htaccess文件,  将向您显示新的重写规则,您应该  手动复制到您的.htaccess文件中(与  主要的index.php文件。)