WordPress问题:迁移后只有主页有效

10

几天前,我尝试将我的 wordpress 网站从共享主机转移到 vps,但遇到了问题。

在跟随许多指南/教程和自己搜索谷歌后,我无法弄清楚为什么它不起作用。首页是唯一加载所有其他页面404的页面。我已经包含了一些相关文件。

有人有任何想法吗?

HTACCESS

httpd.conf

部分目录列表- www.pastebin.com/BCPfRisB

提前致谢

5个回答

23

请登录到您的wp-admin

转到 设置 > 永久链接

不要做任何更改,只需单击“保存更改”按钮。

现在您的网站的次要页面将开始工作。


1
谢谢您的回复,但它没有起作用。我也尝试在删除htaccess文件时进行操作...但是没有成功。还有其他建议吗? - Forrestgump360
1
嘿,这对我有用。非常感谢:D 我所做的第一件事是删除htaccess并按照这些步骤进行操作,它起作用了。 - keysl
1
仍在2023年为人们节省时间 :-) - Chris
1
谢谢,兄弟。我的成功了。 - allan

13

我也遇到了同样的问题,通过在根目录中创建以下内容的.htaccess文件解决了它:

/var/www/html/.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

同时编辑位于/etc/httpd/confhttpd.conf文件,将AllowOverride指令的值设置为All,如下所示,针对目录/var/www/html

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

最后重新启动apache:

sudo service httpd restart

部署相关的所有步骤都可以在此找到:在Centos Box上托管WordPress应用程序


对于在Debian上托管的人(我写作时是10),httpd.conf被命名为apache2.conf,并位于/etc/apache2/中。 - ado387

8
我发布了这篇答案是因为我没有找到提供“所有可能解决方案”的答案,把这个答案当作一个愉快的清单,应该会帮助你解决这个问题。
a) 固定链接更新。以下步骤重建内部设置。

a) 登录您的WordPress仪表板。
b) 转到 设置->永久链接。
c) 不要进行任何更改,只需点击“保存更改”按钮。


b) .htaccess需要rewrite引擎的设置:
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /
   RewriteRule ^index\.php$ - [L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule . /index.php [L]
</IfModule>

另外,由于 Apache 日志文件中的错误,your-wordpress.conf Apache 文件还需要以下条目,该文件大多位于 /etc/apache2/vhostd.d 目录中。
<Directory your-wordpress-directory>
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

d) 确保 mod_rewrite 已启用

a2enmod rewrite
Restart Apache

1
与此问题相关。 Wordpress 404错误,除主页外每个页面都有(迁移后) 有一个名为“duplicator”的wp插件,您可以将其用于小型站点,否则,您应更改wp_options表的siteurl和home url,然后登录到管理后端->设置->永久链接-设置永久链接并保存,
然后,您可以仅设置以下代码并进行测试即可设置.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>`

0

您需要将您的主页和站点 URL 更改为您迁移到的新 URL。最简单的方法是添加以下内容:

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

前往您的wp-config.php文件
确保将虚拟链接替换为您的新网站URL。如果有帮助,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接