服务器迁移后,只有主页有效


33

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

网站网址是http://inksquared.com


Answers:


42

我想您会获得http://您的网站,http://您的网站/任何内容

我有一个类似的问题,当我改变时它得到了解决

httpd.conf

AllowOverride None

AllowOverride All

根据我的理解,它将.htaccess生效。


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

1
这对我也apache2.conf/var/www
有用

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

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

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

44

尝试刷新您的mod_rewrite规则:

控制台->设置->永久链接

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


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

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

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

可湿性粉剂管理员/选项- permalinks.php调用flush_rewrite_rules(),用于包装WP_Rewrite::flush_rules(),而如果$hardtrue(这是在该网页时调用)和功能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

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

27

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

我做了以下操作以在Ubuntu服务器上解决该问题:

  1. /etc/apache2/apache2.conf中,将/ var / www /的AllowOverride None编辑为AllowOverride All

  2. 键入以下命令为.htaccess启用mod_rewrite

sudo a2enmod重写

  1. 重新启动您的apache服务器:

sudo服务apache2重新启动

问题解决了!!!


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

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

绝对需要这个sudo a2enmod rewrite来唤醒,谢谢!
Huskie69 '18 -10-5

1
谢谢!命令a2enmod rewrite帮了我大忙。
卢卡斯·巴斯克罗托

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

1

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


1

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

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

您必须替换AllowOverride NoneAllowOverride All

希望这会起作用。


0

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

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


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

3
@mikeyrocks嗯...另一种可能性是您的新服务器没有打开mod_rewrite。重要提示:您是否正在获得服务器404(显示“未找到”的纯白页)或WordPress 404(样式与您网站的其余部分相同)?
MathSmath 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.