我只是将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
我将永久链接设置更改为默认值,这使得网址看起来像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
任何解决方案?
由于
答案 0 :(得分:7)
您需要编辑Apache http.conf
文件和
更改#LoadModule rewrite_module modules/mod_rewrite.so
到LoadModule rewrite_module modules/mod_rewrite.so
在不再存在http.conf的Apache2版本(即ubuntu)上,您可以使用命令a2enmod rewrite来启用该模块。
答案 1 :(得分:3)
假设您的.htaccess文件已就绪,这很可能是由于新服务器上未启用Apache重写模块引起的。在Ubuntu上执行此操作:
sudo a2enmod rewrite
sudo apache2ctl restart
答案 2 :(得分:2)
我相信这也可能是因为这三个问题。
答案 3 :(得分: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
这对我有用。
答案 4 :(得分:-1)
这很简单,运行:
shell > a2enmod rewrite enable
如果您正在运行apache2。