8

我刚刚将一个 Wordpress网站移至新主机。但是当我转到除 HOME 页面之外的任何页面时,我得到了这个错误:

Not Found

The requested URL /about was not found on this server.

Apache/2.2.16 (Debian) Server at 176.xx.yy.zz Port 80

我将永久链接设置更改为默认,这使 URL 看起来像mysite.com/?page_id=5并且页面显示正常。所以问题不在我的代码中。

我的第一个猜测是mod_rewrite未启用。但phpinfo()告诉我mod_rewrite加载正确。

我的.htaccess是自动生成的,看起来像:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /beta-test/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /beta-test/index.php [L]
</IfModule>
# END WordPress

有什么解决办法吗?

谢谢

4

5 回答 5

8

您需要编辑 Apachehttp.conf文件并

改变#LoadModule rewrite_module modules/mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

在不再存在 http.conf 的 Apache2 版本(即 ubuntu)上,您可以使用命令 a2enmod rewrite 来启用该模块。

于 2013-09-26T03:20:52.157 回答
6

假设您的 .htaccess 文件已就位,这很可能是由于您的新服务器上未启用 Apache 重写模块造成的。在 Ubuntu 上这样做:

sudo a2enmod rewrite
sudo apache2ctl restart
于 2015-02-03T17:19:43.040 回答
3

我相信这也可能是因为这三个问题。

  1. AccessFileName .htaccess 在您的 apache 配置中被注释。
  2. AllowOverride ALL 在您的 apache 配置中未提及 wordpress 路径。
于 2014-02-07T03:19:07.220 回答
1

这可能是重写规则中定义的路径有问题

考虑在 .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

这对我有用。

于 2014-11-10T05:24:05.893 回答
0

这很简单,运行:

shell > a2enmod rewrite enable

如果您在 apache2 上运行。

于 2014-11-17T01:12:26.997 回答