我似乎无法让我的永久链接在我的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,并重新启动了服务器。
答案 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点已经为您完成,但这可能会帮助将来的读者。
为要存储的核心WordPress文件创建新位置 (我们将在示例中使用/ wordpress)。 (在Linux上,使用mkdir 您的www目录中的wordpress。您可能要使用chown apache:您创建的wordpress目录上的apache。)
转到常规屏幕。
在WordPress地址(URL)中:设置主WordPress的地址 核心文件。示例:http://example.com/wordpress
在站点地址(URL)中:设置根目录的URL。例: http://example.com
现在将WordPress核心文件(从根目录)移动到 子目录。
从以下位置复制(不可移动!)index.php和.htaccess文件: WordPress目录进入网站的根目录(博客 地址)。 .htaccess文件是不可见的,因此您可能需要设置 您的FTP客户端以显示隐藏文件。如果您使用的不是漂亮 永久链接,则您可能没有.htaccess文件。如果你是 在Windows(IIS)服务器上运行WordPress并使用 永久链接,您将拥有一个web.config而不是.htaccess文件, 您的WordPress目录。对于index.php文件的说明 保持不变,将index.php文件复制(不要移动)到您的根目录 目录。 web.config文件的处理方式必须与 .htaccess文件,因此您必须将web.config文件移动(不要复制)到 您的根目录。
在文本编辑器中打开根目录的index.php文件
更改以下内容并保存文件。换行 说:要求(目录名(文件)。'/ wp-blog-header.php'); 接下来,使用您的目录名称作为WordPress核心 files:require(目录名( FILE )。'/wordpress/wp-blog-header.php' );
登录到新位置。现在可能是http://example.com/wordpress/wp-admin/
如果已设置“永久链接”,请转到“永久链接”屏幕,然后 更新您的固定链接结构。 WordPress会自动 如果您的.htaccess文件具有适当的文件,请更新 权限。如果WordPress无法写入您的.htaccess文件, 将向您显示新的重写规则,您应该 手动复制到您的.htaccess文件中(与 主要的index.php文件。)