我最近将WordPress网站的托管更改为VPS.net。我已经移动了所有文件并导入了数据库。一切正常,直到我单击一个链接并注意到我的所有页面都带回了404(首页除外)。

站点URL为http://inksquared.com

评论

我今天有这个问题!迁移的WordPress网站–主页工作,所有其他页面/链接失败

我遇到了同样的问题,然后通过根据此处的默认值更改.htaccess文件来解决此问题wordpress.org/support/article/htaccess

#1 楼

我猜您得到的是http://您的网站,但没有http://您的网站/任何东西
我遇到了类似的问题,当我将
httpd.conf
AllowOverride None

更改为
AllowOverride All

使.htaccess生效。

评论


这个为我工作。大多数人都忘记了这一点。

– qasimzee
2014-12-10 18:20

这也对我有用,只需要在apache2.conf中更改服务器文件的位置(在本例中为/ var / www)

– sponrad
2015年11月17日下午6:04

这是我的答案的一部分。我已将AllowOverride All添加到站点配置中,但还添加了选项FollowSymLinks。然后,我可以使用自定义的永久链接,该链接还创建了一个适当的根.htaccess文件。之后,一切正常。

– boot13
16/09/12在23:46



并且不要忘记重新启动apache! “ sudo服务apache2重新启动”

–gradosevic
17年1月11日在7:51

有效。确保在conf文件中的位置更改AllowOverride选项。

– Najeeb
17年12月19日在13:54

#2 楼

尝试刷新您的mod_rewrite规则:

仪表板->设置->永久链接

保存设置(无需进行任何更改)

评论


实际上,甚至不需要保存。仅通过访问该页面即可刷新规则,并且刷新规则的一部分涉及写入.htaccess。

– John P Bloch
2011年4月13日在18:49

我每天都学到新东西... :)

–芯片Bennett
2011年4月13日在18:51

@john您确定只是页面加载是否需要写入.htaccess?我的印象是仅刷新数据库中的rewrite_rules。

–嘘声
2011年4月13日在19:00

wp-admin / options-permalinks.php调用flush_rewrite_rules(),这是WP_Rewrite :: flush_rules()的包装,如果$ hard为true(在该页面上调用时,则为true),并且函数save_mod_rewrite_rules存在(在wp中定义) -admin / includes / misc.php,包含在所有管理页面中),它将调用save_mod_rewrite_rules()。在这里查看该函数的定义:core.trac.wordpress.org/browser/trunk/wp-admin/includes/…

– John P Bloch
2011年4月13日在20:32

实际上将重写规则写入.htaccess的函数称为insert_with_markers(在上面的save_mod_rewrite_rules()中使用),在此定义:core.trac.wordpress.org/browser/trunk/wp-admin/includes/…

– John P Bloch
2011年4月13日在20:33



#3 楼

我曾经遇到过同样的问题。

我在Ubuntu服务器上做了以下操作来解决它:


在/etc/apache2/apache2.conf中,编辑/ var / www /的AllowOverride无到全部AllowOverride
键入以下命令以启用.htaccess的mod_rewrite

sudo a2enmod rewrite


重新启动您的apache服务器:

sudo服务apache2 restart

问题解决了!!!

评论


谢谢,我无法通过其他任何建议来解决此问题,但是a2enmod rewrite可以解决问题。

–马丁·麦卡利恩(Martin McCallion)
17年6月23日在18:17

+1提及重写mod。没有意识到默认情况下未启用此功能。

–本地编码器
17年12月13日在3:35

绝对需要sudo a2enmod重写才能获得此功能,谢谢!

–Huskie69
18-10-5在9:31

谢谢!命令a2enmod重写了我的窍门。

–卢卡斯·巴斯克罗托(Lucas Basquerotto)
18-10-17在15:46

谢谢阿维纳什!与Lucas一样,a2enmod重写对我也有帮助

– Jero Dungog
19年11月25日在21:52

#4 楼

原因很可能是没有复制.htaccess文件。在Mac OS X和某些FTP应用程序中,此文件被视为“隐藏”,因为它以.开头。如果转到管理部分的“设置”->“永久链接”部分,则可以重新生成该文件,但是最好找到以前使用的版本并再次使用(特别是如果使用缓存插件)。

#5 楼

在Ubuntu 14.04中-000-default.conf文件可在此处找到/etc/apache2/sites-available

或者,如果您运行多个wp,则虚拟主机设置将是您的配置文件名。例如domain.conf

您必须将AllowOverride None替换为AllowOverride All

希望这行得通。

#6 楼

您是否获得了Web服务器404或WordPress 404?如果它是Web服务器404,则您很可能没有从旧安装中复制htaccess根文件,或者它没有正确的运行权限。

我的第一个故障排除项目是检查并查看htaccess文件是否在根目录中。如果是这样,它包含的内容。

评论


检查了.htaccess文件。它包含与wordpress管理面板的永久链接部分中显示的代码相同的代码。我将权限更改为可写,看不到明显的变化。

– mikeyrocks
2011年4月13日19:17



@mikeyrocks嗯...另一种可能性是您的新服务器没有打开mod_rewrite。重要提示:您是否正在获取服务器404(显示“未找到”的纯白页)或WordPress 404(样式与您网站的其余部分相同)?

–MathSmath
2011年4月13日在20:11